Bun が Zig から Rust へ 96 万行を 6 日間で書き換え — AI が重労働を担当
2026 年 5 月 14 日、Bun の創設者 Jarred Sumner が PR #30412 をマージしました。これは Bun のコアを Zig から Rust に書き換える 6755 のコミットからなる巨大なブランチです。claude/phase-a-p... というブランチは、ほぼ完全に Anthropic の Claude AI エージェントによって生成されました。
その数字は驚異的です:
| 指標 | 値 |
|---|---|
| コミット数 | 6,755 |
| 翻訳されたコード | ~96 万行の Zig → Rust |
| 期間 | 6 日間 |
| テスト互換性 | 99.8%(Linux x64 glibc) |
| ソースブランチ | claude/phase-a-p... |
実際に何が起きたのか
Bun はもともと Zig(Andrew Kelley が設計したシステムプログラミング言語)で書かれていました。Zig は Bun に速度をもたらしましたが、同時にコントリビューターの層を制限していました。対照的に、Rust は巨大なエコシステム、成熟したツールチェーン、そして深い LLVM 統合を備えています。
Anthropic による Bun の買収後、チームは Claude エージェントを使って Zig コードベース全体を Rust に翻訳する実験を行いました。この実験は高メモリノードのクラスター上で 6 日間実行され、6755 のコミットが生成されました。
結果:Linux x64 glibc 上で Bun の既存テストスイートの 99.8% を通過する Rust コードベースが完成しました。
AI 駆動による大規模マイグレーション
これは AI 駆動によるコードベース移行の大規模デモンストレーションの最初の例の一つです。アプローチは以下の通り:
- ソース分析:Claude が Zig のコードパターン、メモリ管理のイディオム、公開 API サーフェスを分析
- インクリメンタル翻訳:各 Zig ファイルを Rust に段階的に翻訳し、プロパティベースのテストで動作を維持
- 並列実行:複数の Claude エージェントインスタンスがコードベース全体で並行して作業
- CI 検証:翻訳された各モジュールを Bun の既存テストスイートに対して検証
論争
このマージは開発者コミュニティ全体で激しい議論を引き起こしています:
Zig コミュニティ
Bun は Zig のフラッグシッププロジェクトでした — 同言語における最大かつ最も目立つ本番環境での採用例です。Zig Software Foundation のメンバーである Loris Cro は以前、Zig への LLM の貢献を「ほとんどがネガティブ」と表現しています。この移行は、Bun を可能にした言語への裏切りと見なす声もあります。
「Vibe Porting」批判
Lobste.rs では、開発者が「vibe porting」という用語を作り出しました — 統計的には機能するが深い理解を欠いた AI 駆動の翻訳を指します。批評家は、AI が生成した Rust コードは表面的なパターンに従っており、慣用的な Rust の方法を欠いていると主張しています。
Jarred の慎重な見解
以前の HN コメントで、Sumner は次のように強調していました:「私たちは書き換えを約束していません。このコードが完全に破棄される可能性は非常に高いです。」 しかし main へのマージは、実験が期待を上回ったこと、または戦略が変わったことを示唆しています。
これが意味するもの
Bun ユーザーへ
短期的:何も変わりません。Rust 移植は API 互換性を維持しています。長期的:より大きなコントリビュータープール、Rust エコシステム(tokio、hyper、reqwest などのクレート)とのより良い統合、そしてより高速なイテレーションが期待できます。
Zig へ
Zig は旗艦プロジェクトを失います。しかし言語自体は進化を続けており、Bun の移植は Rust ベースのランタイムで働きたい開発者を引き付ける可能性があります。
AI コード移行へ
これは分水嶺となる瞬間です。96 万行のシステムレベルランタイムが 6 日間で AI によって移植可能なら、ソフトウェア書き換えの経済性は根本的に変化します。保守、レガシー移行、言語移植 — これまで高コストでリスクが高かった作業 — が実行可能になります。
コミュニティの反応
| ソース | 感情 |
|---|---|
| Hacker News | 賛否両論 — AI 能力に感嘆する一方、コード品質に懐疑的 |
| Lobste.rs | 批判的 — 「vibe porting」議論、慣用的 Rust への懸念 |
| Stork.ai 分析 | Zig vs Rust の力学に関する戦略的分析 |
| DevClass | 中立的な報道、移植はまだ「半成品」と指摘 |
| CosmicJS | 99.8% のテスト互換性を報道 |
今後の展望
Bun の Rust 書き換えはまだ完了していません — 99.8% は 100% ではなく、レビュアーは AI 翻訳が不十分だった領域を指摘しています。しかし、この実験が main に到達したという事実自体が、Bun だけでなく、ソフトウェアの書き換えについての考え方における新しい章を示しています。
HN のあるコメンテーターが述べたように:「以前の問いは『Rust で書き換えるべきか?』でした。新しい問いは『AI に Rust で書き換えさせるべきか?』です。」