Bunとは何か。何が起きているの?

BunがAIを利用して、大規模な書き直しを行なったことが話題になっています。私はBunを日常的に利用しているわけではありませんが、気になる出来事ではありましたので、今回は改めて、「Bunとは何か」「なぜ大規模な書き直しが行われたのか」を調べて整理しておきます。

なお、Claudeに公式ドキュメントを読ませつつ調べているので、厳格な調査が必要な方はご自身でお調べください。

Bunとは何か

Bunは、JavaScriptランタイムの一つです。JavaScript / TypeScript / JSXアプリケーションのためのオールインワン・ツールキットとされていて、bunという単一のバイナリとして配布されています。これ一つで複数の役割をこなします。

公式ドキュメントの説明は次のようになっています。Node.jsのドロップイン代替として設計されていること、JavaScriptCoreを利用して、Zigで書かれていること、が印象的です。

Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called bun.
At its core is the Bun runtime, a fast JavaScript runtime designed as a drop-in replacement for Node.js. It’s written in Zig and powered by JavaScriptCore under the hood, dramatically reducing startup times and memory usage.

公式: https://bun.com/docs

Bunを使うと何が嬉しいのか

私の理解では、Bunは次のような要素で選ばれるようです。

  • 速い。Node.jsより起動が早く、npmよりインストールも高速に動く。
  • ツールが統合されている。従来のNode.js開発では、Webpack/Vite , Jest/Vitest , ts-node/tsxを選ぶ必要があったが、それがバンドルされている。TypeScriptやJSXもそのまま動く。
  • Node.jsから乗り換えやすく、実用的な機能が組み込まれている。fetch、WebSocket、SQLiteとかS3クライアントとかCron、画像処理、各種ユーティリティなど。

公式: https://bun.com/docs の左サイドバーに各機能のリンクがあります。

Bunはどこで開発・保守されている?

私はソフトウェアを理解する際、開発母体・保守母体を初期に調べます。

Bunは、2020年夏にJarred Sumner氏の個人プロジェクトとしてスタートしたようです。その後Sumner氏が会社「Oven」を立ち上げて、投資家から資金調達を得ながらBunの開発を進めていった、とのことです。そして、2023年9月にBun 1.0がリリースされています。

その後、2025年12月に、BunがAnthropicに買収されました。Claude CodeがBunを利用しています。そのため、Bunの動作不良がClaude Codeの動作に影響するため、安定的な開発を行うためにBunを買収した、と私は理解しています。

また、BunがAnthropicに買収された際のアナウンスを見ると、Bunそのものの開発もClaudeCodeに強く依存していた状況が見えます。

公式アナウンス: https://bun.com/blog/bun-joins-anthropic

BunはRust実装に移行した

Bunは元々、Zigで実装されていました。2026年5月に、BunがZigからRustへの大規模書き直しを行い、それをmainブランチに取り込んだことが話題になりました。特に、PRの差分が約100万行となっていた出来事が様々な場所で取り上げられていたのを見ました。

何が起きたのかを理解するために、タイムラインを並べてみます。

  • 2026年5月上旬: Sumner氏がZig→Rustポーティングガイドを公開した。約300ルールを定義した
  • 2026年5月8日頃: claude/phase-a-portブランチ作成、AIエージェントによる書き直しが開始された
  • 2026年5月9日頃: Linux x64 glibcで既存テストスイートの99.8%パスを報告した。Sumner氏は実験である旨を説明した
  • 2026年5月11日: Sumner氏はBun のv1.3.14をリリースした。その際、Rust rewriteがマージされたらこれがZig最後のリリースだと予告した
  • 2026年5月13日: Bun v1.3.14リリースされた
  • 2026年5月14日: Rust rewrite のPRがmainへマージ https://github.com/oven-sh/bun/pull/30412

なぜ、BunはRustに移行したのか

この状況を見ていると、いろいろな状況があったんだろうなあ、と推測できます。

元々、Bunの開発では長年メモリ問題のデバッグに膨大な時間が費やされてきたとの説明があり、Rustの所有権モデルとツール群(Miri、AddressSanitizer等)はそのデバッグに有効だと説明されています。企業の中で開発を進める場合に、開発速度を上げたいモチベーションが高まるのは、比較的予想しやすいです。

さらに、Bunが開発に利用していたZigは、LLMの利用を厳しく禁止しています。Simon Willison氏がブログで解説しているのですが、Zigはコントリビューターの育成のためにPRをレビューしてApproveしており、内容より誰が作ったかを重視しているようです。

https://simonwillison.net/2026/Apr/30/zig-anti-ai

そして、Simon Willison氏のブログやアナウンスでも触れられているようにBunチームは、AIを使って開発していますし、すでにBunはZigの独自フォークを利用していたようです。この状況は、Anthropic側から見て、中長期の持続性に不安を感じるように見えます。

この状況を考慮して、AnthoropicとBunチームの間で、ClaudeCodeを利用して大規模な言語書き換えにチャレンジする話が出たように見えます。で、書き換えチャレンジを本流と別で進めると、Zig実装によるコントリビュートの確認と並行して進める必要が出てきます。なので、Rust版をmainにマージして本気度を見えるようにして、大規模なRustへの移行チャレンジに集中する流れを作ったのではないか、と思います。

Anthropic側からするとこれが成功すれば、ClaudeCodeによる大規模な言語書き換えの公開実績ができるし、うまくいかない場合もそれはそれで書き換えナレッジが溜まります。と言うわけで、AnthropicからBunチームにやってみなはれ、と言う話が出たのかな、と勝手に予想しています。また、BunチームとしてもZigでの開発継続が辛いのが見えてたので、やるしかねえ、となったのかなとも思います。

今後について

Claude Opusとチャットでやり取りしている中で、Python 2 → 3やAngularJS → Angularの時も、方向性を確定させるマージを行なって、大規模な移行を進めていくケースがあると聞きました。ただ、このケースは、それらと比較にならないほど大規模な移行ではあると思います。

なんとなく予想できるのは、Bun本体の実装とClaudeCodeそのものは動くようになったものの、Bunを前提として書かれたサードパーティ系のライブラリやアプリケーションが動かなくなる、と言うパターンです。

どうなることやら、と思いますが、今後の流れを見ていきたいと思います。

類似投稿