サムネイル

Claude CodeのBunがいつの間にかRustになっていた

  • 0

Claude Code v2.1.181以降が動かしているBunは、実はRust製に入れ替わっています。

しかもそのRust版を書いたのは人間ではなく、64並列で走ったClaude自身。

この入れ替わりの舞台裏には、5.9Bトークン投入とZig作者からの反発が絡んでいます。

Claude CodeのBunがRustに書き換わっていた発見

発見したのはSimon Willisonさんです。

手元のClaude Codeバイナリにstringsコマンドをかけて中身の文字列を抜き出したところ、.rs拡張子のファイル名が563個も埋め込まれていました。

要するにgrep '\.rs$'で数えられる程度に、Rustソースツリー丸ごとが同梱されていたわけです。

対象はClaude Code v2.1.181(2026年6月17日リリース)以降のビルド。

埋め込まれているのはBun v1.4.0で、記事執筆時点ではcanary扱いのプレリリース版でした。

念のためBun.versionをTypeScriptから叩いてみると、確かに1.4.0系が返ってきます。

そもそもClaude CodeはNode.jsではなくBunで動いています。

そのBunが今度はRust製に入れ替わっていた。

これが二重の意外性で、今回の話の面白さになっています。

Anthropic側はリリースノートで大々的に告知していないので、私たちが毎日ターミナルで叩いているclaudeコマンドは、多くのユーザーが気づかないまま正式版前のRust版Bunで動き続けています。

64並列のAIエージェントがBunをRustへ移植した内幕

64並列のAIエージェントがBunをRustへ移植した工程

Bunの開発元Oven社は、2025年12月にAnthropicに買収されました。

つまりBunは今やAnthropicの内製ランタイムであり、Claude Codeの実行基盤でもあります。

自社製品を動かす自社ランタイムを、自社製AIで書き換える。

関係性がこれ以上ないほど閉じています。

Bun書き換えに投じた5.9Bトークンと6502コミット

投じられた入力は5.9Bトークン(約59億トークン、キャッシュ非対象分)、出力は690Mトークン(約6.9億トークン)です。

マージ除きで6,502コミットが積まれ、ピーク時は毎分1,300行のペースでコードが書き込まれていきました。

APIコストは約16.5万ドル、円換算で約2,475万円になります。

数字だけ並べても実感が湧きにくいので人間の仕事量に翻訳すると、エンジニア数名が丸1年以上かけて終わるかどうか、というくらいの物量です。

それを11日で書き終えたのが今回実際に起きたことになります。

私の実感として、APIコスト2,500万円弱で済んでいる点も意外です。

フルタイムのエンジニアを数名1年アサインするより桁で安く済んでいる計算になります。

Zig 53万行を11日でRustへ置き換えた工程

置き換え対象はZigコード535,496行。

工程としては最大64並列のClaudeエージェントを、4つのworktreeに分散させて走らせています。

実装役のClaudeが書いたコードを、別インスタンスのClaudeが敵対的レビュー(adversarial review)に回してから初めてコミットに乗せる、という二段構えのワークフローでした。

面白いのは、レビュー側にも同じClaudeを充てている点です。

人間の組織で言えば、実装者とレビュアーを別チームに切り分けてお互いに疑って掛かる文化を、そのままエージェント同士に落とし込んでいます。

テスト駆動でAIを制御するのが今の実務の勘所ですが、それを組織スケールでやったのが今回の内幕、という理解が近いです。

Zig作者が示したBunのRust書き換えへの懸念

Zig作者Andrew Kelleyがunreviewed slopと批判

これだけの規模と速度で書かれたコードは、当然「レビューは間に合っているのか」という疑問と隣り合わせになります。

真正面から声を上げたのがZig作者のAndrew Kelleyさんで、自身のブログで今回の書き換えをunreviewed slop(レビューされていない粗製濫造)と表現しました。

Andrew Kelleyさんの主張の芯は、実は言語選択の話ではありません。

「Zigに問題があったからRustにした」ではなく、「Bun側のエンジニアリング姿勢の問題を、書き換えという派手な手段で覆い隠している」という指摘です。

バグやテクニカルデットへの向き合い方は、Zigコードベースのままでも変えられたはず、という論旨になります。

Hacker Newsのスレッドは606ポイント・836コメントに達し、賛否は真っ二つに割れています。

Rustのメモリ安全性を評価する声と、「11日で書かれた50万行規模のコードを誰が本当に読み切ったのか」という懸念が同じ温度でぶつかっている状況です。

両側の主張を並べると、テスト網でどこまで担保できるかがこれからの論点になりそうです。

Claude CodeとBunに見るAIが基盤を書き換える時代

Claude CodeとBunに見るAIが基盤を書き換える入れ子構造

個人的に今回一番効いたのは、入れ子構造そのものです。

Claude Codeという道具の中身が、その道具を作る会社のAIによって置き換わっていた。

しかも置き換えの原資として、Claude Code自身のAPIが使われている、というオチまでついています。

Simon Willisonさんがstringsgrepだけで発見できたように、この事実は誰でも自分の手で確かめられます。

裏を返せば、確かめない限りは表に出ないまま、自分の道具の中身が変わっていくということでもあります。

手元のClaude Codeにも一度stringsをかけてみると、想像より生々しい発見があるはずです。

素直に言うと、私はAndrew Kelleyさんの懸念にもBun側の判断にも一定の理があると感じています。

少なくとも「試験運用で50万行を回した」実例が世に出た以上、次に同じことをやるチームはもう1社では終わらないはずです。

基盤ライブラリの寿命そのものが、AIの計算資源で決まっていく時代になったと考えるとしっくりきます。

会員登録して機能を使おう

この機能を利用するには、無料の会員登録が必要です。
お気に入りの記事を保存して、あとで読み返しましょう!