needhelp
← Retour au blog

Bun réécrit 960 000 lignes de Zig en Rust en 6 jours — l'IA a fait le gros du travail

par needhelp
bun
rust
zig
ai-codegen
javascript-runtime

Réécriture de Bun de Zig vers Rust

Le 14 mai 2026, Jarred Sumner, créateur de Bun, a fusionné la PR #30412 — une branche monumentale de 6755 commits qui réécrit le cœur de Bun de Zig à Rust. La branche, claude/phase-a-p..., a été générée presque entièrement par des agents IA Claude d’Anthropic.

Les chiffres sont stupéfiants :

MétriqueValeur
Commits6 755
Code traduit~960 000 lignes Zig → Rust
Durée6 jours
Compatibilité des tests99,8 % (Linux x64 glibc)
Branche sourceclaude/phase-a-p...

Ce Qu’il S’est Passé

Bun a été initialement écrit en Zig, un langage de programmation système conçu par Andrew Kelley. Zig a donné à Bun sa vitesse — mais a également limité le bassin de contributeurs. Rust, en revanche, dispose d’un écosystème massif, d’outils matures et d’une intégration profonde avec LLVM.

Après l’acquisition de Bun par Anthropic, l’équipe a expérimenté l’utilisation d’agents Claude pour traduire l’ensemble du codebase Zig en Rust. L’expérience a duré 6 jours sur un cluster de nœuds à haute mémoire, produisant 6755 commits.

Le résultat : un codebase Rust qui réussit 99,8 % de la suite de tests existante de Bun sur Linux x64 glibc.

Migration à Grande Échelle par l’IA

C’est l’une des premières démonstrations à grande échelle de migration de codebase pilotée par l’IA. L’approche :

  1. Analyse source : Claude a analysé les patterns de code Zig, les idiomes de gestion mémoire et la surface d’API publique
  2. Traduction incrémentale : Chaque fichier Zig a été traduit en Rust de manière incrémentale, préservant le comportement via des tests basés sur les propriétés
  3. Exécution parallèle : Plusieurs instances d’agents Claude ont travaillé en parallèle sur l’ensemble du codebase
  4. Validation CI : Chaque module traduit a été validé contre la suite de tests existante de Bun

Pipeline de migration IA

La Controverse

La fusion a suscité un débat intense dans la communauté des développeurs :

Communauté Zig

Bun était le projet phare de Zig — le déploiement en production le plus vaste et le plus visible du langage. Loris Cro, membre de la Zig Software Foundation, a précédemment décrit les contributions des LLM à Zig comme « majoritairement négatives ». La migration est perçue par certains comme une trahison du langage qui a rendu Bun possible.

Critiques du « Vibe Porting »

Sur Lobste.rs, les développeurs ont inventé le terme « vibe porting » — une traduction pilotée par l’IA qui fonctionne statistiquement mais manque de compréhension profonde. Les critiques soutiennent que le code Rust généré par l’IA suit des patterns superficiels et manque de la manière idiomatique de Rust.

La Position Prudente de Jarred

Dans des commentaires précédents sur HN, Sumner avait souligné : “Nous ne nous sommes pas engagés à réécrire. Il y a une très forte probabilité que tout ce code soit complètement jeté.” Pourtant, la fusion dans main suggère que l’expérience a dépassé les attentes — ou que la stratégie a changé.

Ce Que Cela Signifie

Pour les Utilisateurs de Bun

À court terme : rien ne change. Le portage Rust maintient la compatibilité API. À long terme : un plus grand bassin de contributeurs, une meilleure intégration avec l’écosystème Rust (crates comme tokio, hyper, reqwest), et une itération potentiellement plus rapide.

Pour Zig

Zig perd son projet phare. Mais le langage continue d’évoluer — et le portage de Bun pourrait attirer des développeurs souhaitant travailler sur un runtime basé sur Rust.

Pour la Migration de Code par l’IA

C’est un moment charnière. Si un runtime système de 960 000 lignes peut être porté en 6 jours par l’IA, l’économie des réécritures logicielles change fondamentalement. La maintenance, la migration de code legacy et le portage de langage — historiquement coûteux et risqués — deviennent réalisables.

Réactions de la Communauté

SourceSentiment
Hacker NewsPartagé — impressionnés par la capacité de l’IA, sceptiques sur la qualité du code
Lobste.rsCritique — discussion sur le « vibe porting », préoccupations sur le Rust idiomatique
Analyse Stork.aiAnalyse stratégique de la dynamique Zig vs Rust
DevClassReportage neutre, note que le portage est encore « half-baked »
CosmicJSRapporte 99,8 % de compatibilité des tests

Perspectives

La réécriture de Bun en Rust n’est pas terminée — 99,8 % n’est pas 100 %, et les réviseurs ont signalé des domaines où la traduction par l’IA était insuffisante. Mais le fait que cette expérience ait atteint main signale un nouveau chapitre, non seulement pour Bun, mais pour notre façon de concevoir les réécritures logicielles.

Comme l’a dit un commentateur sur HN : “L’ancienne question était ‘devrions-nous le réécrire en Rust ?’ La nouvelle question est ‘devrions-nous laisser l’IA le réécrire en Rust pour nous ?’”

Références

Partager cette page