Bun 1.4 : la réécriture de Bun, bonne ou mauvaise chose ?
jeu, 20/08/2026 - 12:02
Le 8 juillet dernier, Bun, racheté par Anthropic, a annoncé une réécriture totale de Bun avec Claude Fable 5 pour migrer le code en Rust. Jusqu'à présent, l'outil était codé en Zig depuis 2021. Bun a multiplié les bug fix et mises à jour pour stabiliser les fonctions. Pour réussir cette mission, Bun a patché le compilateur Zig pour intégrer Address Sanitizer, renforcer la sécurité par design sur Windows, tests en continu avec Fuzzilli. Même si 20 % du code est toujours écrité en C++. En tout, il y a 535 496 lignes de code Zig.

Mais de l'aveu même de l'équipe, la liste des bugs est longue, très longue. Pour ces problèmes, et pour avoir une véritable sécurité par design dans le langage, Bun veut migrer vers Rust. Beaucoup de bugs viennent de la gestion mémoire. "Une réécriture dans un autre langage prendrait une année entière à une petite équipe d'ingénieurs. Cela impliquerait de geler les corrections de bugs, les correctifs de sécurité et le développement de nouvelles fonctionnalités pendant cette période. L'approche la moins risquée pour obtenir une version livrable serait un portage mécanique de Zig vers Rust, avec un minimum de modifications comportementales, en utilisant exactement la même suite de tests que celle utilisée pour Bun." commente Bun.
TypeScript aurait pu être une solution mais Rust a été choisi. Et pour réaliser ce travail, Bun a utilisé Claude. Ça tombe bien, Bun appartient à l'éditeur de Claude... Selon la publication de Bun, il aurait fallu 11 jours, 64 agents et 6 502 commits pour réaliser la réécriture et +12 000 erreurs corrigées à la compilation.
Bref, le passage à Rust se justifie, selon Bun, pour :
- le safe memory
- une compilation performante par rapport à Zig
- une génération par IA
Au final, plus de 680 000 lignes de Rust ont été générées. Luigi de Tech blog a mesuré les éléments :
- environ 570,000 lines of Zig became 682,000 lines of Rust (excluding AI-generated comments)
- 99.8% of the existing test suite passes on the first AI-generated port
- 13,044 unsafe blocks in the resulting Rust code (hand-written Rust projects of similar size average ~73)
- 999+ uses of
static mut(global mutable state, the antithesis of Rust's safety guarantees) - 262 instances of
ManuallyDrop, 81 ofmem::forget - Files as large as 9,765 lines (the JS parser,
p.rs) - The largest PR in GitHub history was reviewed by
coderabbitai[bot]andclaude[bot]
Reste à savoir si le nouveau code généré est de qualité. Là, les avis sont très mitigés et Luigi pointe les nombreux commentaires opposés. Et il explique même : "L'IA savait qu'elle écrivait du code défectueux. Elle s'en fichait tout simplement. Le commentaire indique « Phase B », ce qui laisse entendre que l'équipe prévoit de corriger le problème ultérieurement. Mais les critiques soulignent qu'avec 13 000 blocs non sécurisés et aucune relecture humaine du code, la « Phase B » risque de ne jamais voir le jour."
Andrew Kelley, lead developer de Zig, a répondu le 9 juillet au post de Bun, très négatif envers Zig. Il revient sur les vues différentes et sur les oublis du post de Bun sur plusieurs points techniques comme les performances avec LTO pris en charge par le compilateur Zig ce qui n'aurait pas été activé par Bun ou encore un doute sur les tests en continu pour vérifier la qualité du code Zig... Il démonte aussi l'argument de la taille du binaire, un travail qui aurait pu être fait depuis longtemps. Andrew prend exemple sur la vitesse de compilateur : "J'ai remarqué que vous avez omis de mentionner la vitesse de compilation. Le projet du compilateur Zig compte environ 600 000 lignes de code, soit à peu près la même taille que Bun avant sa réécriture. Je mesure 16 secondes pour compiler à partir de zéro avec un cache vierge, puis 90 ms pour chaque modification ultérieure avec la compilation incrémentale activée. Quelles sont les mesures correspondantes pour Bun après sa réécriture ?"
Pour le moment la version 1.4 est disponible dans le canal canary.
Post du 8 juillet de Bun : https://bun.com/blog/bun-in-rust
Luigi : https://grigio.org/bun-1-4-the-controversial-ai-driven-rewrite-from-zig-to-rust/
Post d'Andrew Kelly : https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.html

