概要
2026年5月14日、JavaScriptランタイム「Bun」の開発者Jarred Sumnerが、コア実装をZigからRustへ全面書き直した100万行超のプルリクエストをメインブランチにマージした。このPRは「1,009,257行追加・4,024行削除・2,188ファイル変更・6,755コミット」という規模で、並行して約60万行のZigコードを削除する別PRも提出された(こちらはGitHubに「AI slop」として自動フラグが立てられた)。Bun 1.3.14が最後のZigリリースとなり、次バージョンからは全面的にRustベースへ移行する。
AI主導のコード変換
最大の注目点は、このリライトのほぼ全行をAnthropicの「Claude(Claude Code)」が担ったことだ。ブランチ名「claude/phase-a-port」がそれを端的に示している。Sumnerは「我々は数ヶ月間、自分たちでコードを書いていない。ClaudeがRustバージョンをメンテナンスし続けるかと聞かれれば、それはすでに現状だ」とコメントしている。変換にあたってはポーティングドキュメントの整備や内部型の事前マッピングなど準備作業が行われ、わずか6日間で完了したとされる。マージ前の時点で既存テストスイートの99.8%(Linux x64)をパスしていた。
Rustへ移行した技術的理由
Sumnerが挙げた移行の主な動機はメモリ安全性の向上だ。「use-after-free、double-free、エラーパスでのfree忘れ」といったバグをコンパイル時に検出できるRustのコンパイラ支援ツールが、これまでチームの膨大な開発・デバッグ時間を費やしてきたメモリ問題の解消に有効だと判断した。実際、プロダクション環境に影響していた複数のメモリリークが修正され、バイナリサイズもプラットフォームによって3〜8MB削減された。パフォーマンスは「ニュートラルから改善」と評価されている。なお、ZigコミュニティのAI使用に対するポリシー的な対立(BunチームはAI活用を前提とする一方、Zigの上流はAI非採用方針)も、フォーク維持コストを高めていたとされる。
JavaScript ランタイム競争への影響
今回の移行で、主要なJavaScriptランタイムの言語選択が出揃った形になる。Node.jsはC++、Denoは発足当初からRust、そしてBunがRustへ移行したことで、ランタイム開発における「Rustデファクト」の流れがより鮮明になった。
コミュニティの反応と懸念
このPRには1,254件の肯定的リアクションと1,010件の否定的リアクションが寄せられ、コミュニティの反応は二分している。主な懸念は「6,755コミット中、人間が一行も書いていないコードが人間によるレビューなしに本番に入る」というガバナンスの問題だ。批判的な論者は、テストスイートの通過は既知パスの検証に過ぎず、エラー境界・競合状態・JavaScriptとの境界でのメモリ問題は人間の理解がなければ把握できないと指摘している。ZigがBunの初期成功に果たした貢献(低リソースで高パフォーマンスを実現した骨格)を評価しつつ、今後の複雑なバグ診断に対する不安を示す声も上がっており、AI主導の大規模コードマイグレーションが抱えるリスクを改めて問う事例となっている。