Bun réécrit en Rust grâce aux agents IA : comment c'est possible
Pourquoi ça compte pour toi
Pendant 25 ans, la sagesse collective disait : jamais tu ne réécrits un gros projet de zéro. Les agents IA modernes changent la donne. Ce cas d'école montre comment une suite de tests solide + modèles frontière = tu peux enfin migrer une base de code entière sans te ruiner ni t'épuiser à la tâche. C'est un signal fort pour tous ceux qui traînent des dettes techniques monstres.
Ce qu'il faut retenir
- 1.11 jours pour porter 1+ million de lignes de code avec des agents IA, contre l'avis reçu depuis 2000
- 2.La clé : une suite de tests TypeScript avec 1 million d'assertions joue le rôle de suite de conformité
- 3.Bun en Rust élimine 90% des bugs mémoire (use-after-free, double-free) que Zig laissait passer
- 4.Coût réel : 165 000$ en appels API, mais 5,9 milliards tokens en entrée, 690 millions en sortie
- 5.Stratégie de revue : pas de PR classique, mais relecture adversariale + correction du processus, pas du code
Tu galères avec le jargon ?
Lis la version réécrite en mode débutant — toutes les idées, sans le jargon.
Pourquoi Rust, pourquoi maintenant ?
Jarred Sumner avait construit Bun en Zig — excellente décision à l'époque. Mais Zig + garbage collector + gestion manuelle mémoire = une combinaison rare que presque aucun langage n'anticipe. Résultat : des crashs en production qui le gardaient éveillé la nuit.
Rust, c'est l'opposé. Les erreurs mémoire (use-after-free, double-free, oublis de libération en chemin d'erreur) deviennent des erreurs de compilation. RAII + Drop = nettoyage automatique. Zéro surprises à 3h du matin.
Le hack qui a rendu possible l'impossible
Le secret ? Une suite de tests TypeScript déjà existante avec environ 1 million d'assertions. Elle a joué le rôle de suite de conformité — une vérité objective pour valider chaque portion de code portée.
Jarred a lancé un harnais d'agent avec une version précoce du modèle Mythos/Fable (Anthropic). Au départ, il pensait que ça n'allait jamais marcher. Quelques jours plus tard, un pourcentage élevé des tests passait. L'agent générait du code Rust qui collait étrangement bien à l'original Zig.
Conviction rapidement acquise : "Je vais merger ça."
Comment tu relis 1+ million de lignes ajoutées ?
C'est LE problème qu'on esquive jamais : tu ne peux pas lire 1 million de lignes de code généré par une IA. Personne ne peut.
Jarred a appliqué une stratégie en trois volets :
- ▸
Relecture adversariale : il a manuellement lu les sorties du modèle, cherché des failles, des schémas suspects, des coins coupés. Pas une revue exhaustive, un audit critique.
- ▸
Itération sur le processus, pas sur le code : quand une erreur était trouvée, il ne corrigeait pas la ligne générée. Il retravaillait le prompt ou la boucle d'agent pour que Claude ne commette plus cette classe d'erreur.
- ▸
Les tests comme source de vérité : chaque assertion de la suite de tests était une garantie de compatibilité. Si ça passe, c'est bon.
Le coût réel
Jarred a calculé : 5,9 milliards de tokens en entrée, 690 millions en sortie, 72 milliards de tokens en cache relus. Au tarif API public, ça monte à 165 000$.
Lui, il paie 0$. Avantage d'être chez Anthropic.
Mais même 165k$, c'est moins cher qu'une équipe senior pendant 3-4 mois. Et beaucoup plus rapide.
L'anti-révolution : ça marche, personne ne le remarque
Bun en Rust tourne dans Claude Code depuis fin juin. Démarrage 10% plus rapide sur Linux. Sinon ? Silence radio. Ennuyeux. Ennuyeux c'est bon.
C'est le vrai test de qualité : tu remplaces la fondation d'un produit utilisé en production et aucun utilisateur ne le détecte.
Et concrètement pour toi ?
Choisis ton profil — la lecture de l'article change selon qui tu es.
Pour toi, ce qui change vraiment c'est que l'IA tue le tabou du "never rewrite", mais seulement si tu as des tests : l'IA n'invente pas la sécurité, elle la transplante. C'est un outil d'exécution, pas de vision.
Source
Pour aller plus loin
Cet article t'a donné envie d'approfondir ? Deux formations Noésis t'attendent :
Explorer les thèmes de cet article :