
Bun のコアが Zig から Rust へ - Claude が6日で約100万行を書き換えた話と Bun 1.4 での安定版移行
読みやすいコードの原則。全エンジニアの基礎。
通称「徳丸本」。Webセキュリティの定番教科書。
打鍵感で選ぶ定番キーボード。長時間の実装に。
当サイトは Amazon.co.jp を宣伝しリンクすることで紹介料を得る手段を提供する、Amazonアソシエイト・プログラムの参加者です。価格・在庫はリンク先の最新情報をご確認ください。
JavaScript ランタイム Bun が、コアを Zig から Rust へ全面書き換えする巨大 PR をマージしました。しかも大半を Anthropic の Claude が生成し、人手なら約1年の作業がわずか数日で——というAI駆動開発の象徴的な事例です。ただし「もう Bun は Rust 製」と早合点するのは禁物。この記事では、何が起きたか・なぜか・現状はどうかを、GitHub・Bun公式・The Register を一次ソースに整理します。
何が起きたのか
- 2026年5月14日、
oven-sh/bunに PR #30412「Rewrite Bun in Rust」が main へマージ(ブランチ名claude/phase-a-port) - 規模は 6,755コミット・約100万行追加(1,009,257行)・2,188ファイル変更
- Linux x64 glibc で既存テストの99.8%が通過
- 背景に、2025年12月の Anthropic による Bun 買収(Claude Code の基盤として)があります(Bun 公式)
WARNING
「いま入る Bun はもう Rust 製」ではありません。 公式の監査ページも「今日インストールする Bun は今も Zig 実装で動く」と明記しています。安定版は引き続き Zig 実装の v1.3.14 で、Rust 版は bun upgrade --canary で試せる段階。安定版「Bun 1.4」のリリース日は未発表です(Bun unsafe audit)。
NOTE
追記(2026-10-07): 2026年8月20日に Bun 1.4 が安定版としてリリースされ、公式ブログで「Bun is now written in Rust - and this is the first release」と、Rust 実装の最初の安定版であることが明言されました。したがって上の警告は公開時点(2026年6月)の状況です。詳しくは記事末尾の「その後の動き」を参照してください。
なぜ Zig をやめるのか
意外にも、引き金は技術より運用でした。
- Zig の「AI生成物の禁止ポリシー」とBunの開発手法が衝突。BunはすでにZigフォークを独自運用しており、upstreamへ戻せない状態に
- Rust のコントリビュータ人口が桁違いに多い。エコシステムの健全性・プラットフォーム対応で有利
- メモリ安全性(use-after-free 等のクラスのバグをコンパイラで根絶)。作者 Jarred Sumner は「主目的は安全性で、速度ではない」と明言
- バイナリサイズの削減(3〜8MB)
Claude が「6日で」書いた
最大の話題は、書き換えのほぼ全量を Claude が生成した点です。
- 使ったのは Claude Code の dynamic workflows(タスクを分解し、最大16並列・1セッション最大1,000エージェントへ fan-out。独立した検証エージェントがレビュー)。詳しくはOpus 4.8 と dynamic workflows
- 期間は約6日(公式動画は6日、Claude公式ブログは「first commit→merge で11日」と起算点で揺れあり)
- 移行手順は 約300超の変換ルールを記した
PORTING.md(型マッピング70超・イディオム90超)と、事前生成した LIFETIMES データに沿って、Phase A(下訳)→ 検証 → クレート単位のビルド/テスト/UB修正と段階実行
Claude Code 責任者 Boris Cherny は「人間のチームなら約1年の作業を6日で」「自分は8か月、一行も手で書いていない」と語っています(Fortune、Boris Cherny インタビュー)。
論争点 - 「Rustなのにunsafeだらけ」
手放しの称賛ばかりではありません。
- unsafe ブロックが13,365個。同規模の Rust 製ツール(uv の73個など)と比べて桁違いに多く、「安全性のために Rust にした意義が薄い」との批判。公式は「C/C++ライブラリ(JavaScriptCore・libuv)とのFFI境界が多いため」「約9,300個は安全なコードへ変換可能」と説明
- PRのリアクションは 👍1,683 vs 👎1,706 と賛否拮抗
- マージ後48時間で22のバグ修正。証明可能な未定義動作(UB)も数件残存し、対応ロードマップが公表
- 「本当に6日か」という懐疑(porting guide の設計など事前工数は別)や、downstream の Zig バインディングへの影響も指摘
NOTE
これは「AIが大規模な実コードベースをどこまで書けるか」の貴重な実例である一方、レビュー不能な規模の自動生成PRという新しい課題も突きつけました。GitHub が一部を「AI slop」として自動フラグした、という報告もあります。速さと検証可能性のトレードオフは、今後のAI駆動開発の論点になりそうです。
その後の動き(2026年10月時点)
- 2026年8月20日、Bun 1.4 をリリース。公式ブログは「Bun is now written in Rust - and this is the first release」と書き、Claude Code が数か月前から Rust 版の Bun を使っていたことにも触れています
- 同ブログでは、Linux でアイドル時の CPU 使用率が5分の1、メモリ使用量が最大35%減、起動が50%高速、Linux と Windows でバイナリサイズが最大17%減といった改善が挙げられています(いずれも公式発表の数値)
- その後 v1.4.1(9月4日)・v1.4.2(9月5日)とパッチリリースが続いています(GitHub Releases)
- 一方、Bun unsafe audit のページは2026年5月21日更新のままで、unsafe ブロック数(13,365個)の削減状況は2026年10月7日時点で公式ページに反映されていません
本文の「安定版はまだ Zig 実装」「Rust 版は canary 段階」は、公開時点(2026年6月)の状況です。いま bun upgrade で入る安定版は Rust 実装です。
まとめ
- Bun は コアを Zig→Rust へ書き換える PR を2026年5月14日に main へマージ(約100万行・6,755コミット・テスト99.8%通過)
- 大半を Claude Code の dynamic workflows がほぼ自動生成。約6日、Boris Cherny曰く「人間なら約1年」
- ただし安定版はまだ Zig 実装(v1.3.14)。Rust 版は canary 段階で、安定版リリース日は未発表
- 動機は Zig の no-AI ポリシー・Rust のコミュニティ・メモリ安全性。一方で unsafe 1.3万個などの批判も
- AI が大規模実コードを書く時代の象徴例だが、検証可能性という新課題も同時に提示
「AIがランタイムを丸ごと書き換える」のは確かに衝撃的ですが、本番に降りてくるのはこれから。canary の安定化と独立ベンチ、そしてunsafeの削減がどう進むかを見守る段階です。Rust 自体に触れたい人はRust と rustup の入門もどうぞ。


