BunをRustで書き直す
Jarred Sumner氏が、AIコーディングエージェントを使ってBunをZigからRustに書き直した詳細を解説。TypeScriptのテストスイートがコンフォーマンススイートとして機能し、自動移植を可能にした。書き換えには約16万5000ドルのAPIトークンが消費され、新しいRust版はClaude Codeで稼働中であり、Linuxでの起動速度が10%向上した。
Jarred Sumner氏が、BunをZigからRustに書き直すという詳細なブログ記事を公開しました。5月9日から予告されていたこの記事は、実際の書き換えよりも長い期間待たれましたが、その価値は十分にありました。この記事は、動的ワークフロー、トライアル実行、敵対的レビューなど、非常に洗練されたエージェント工学の実践を詳細に説明しています。
Sumner氏は記事の前半で、Bunをここまで成長させたZigを称賛しています。しかし、その後で核心に触れています。Bunのバグリストはひどく、メモリ管理の問題(use-after-free、double-free、エラーパスでの解放忘れ)に悩まされていました。安全なRustでは、これらのエラーはコンパイルエラーとなり、RAIIによる自動クリーンアップが可能です。これが書き換えの決定的な理由でした。
大規模ソフトウェアの完全な書き換えは通常避けるべきとされていますが、最先端のAIモデルによるコーディングエージェントがその方程式を変えました。重要な要因は、BunのテストスイートがTypeScriptで書かれていたことで、コンフォーマンススイートとして機能したことです。エージェントフレームワークはこのスイートを活用し、ZigからRustへの移植の大部分を自動化しました。最初は実験でしたが、数日でテストの通過率が大幅に向上し、Sumner氏は「マージする」と決断しました。
11日間のほとんどで、Sumner氏はワークフローを監視し、出力を手動で確認し、Claudeにループの修正を促しました。100万行以上のコードが追加されたプルリクエストをレビューするために、彼は言語に依存しないテストスイート(100万のアサーション)、敵対的コードレビュー、そして問題が発生した際にはコードを手動修正するのではなく、コードを生成するプロセスを修正する手法を採用しました。
新しいRust版Bunは、Claude Codeで約1ヶ月前から稼働しています。Claude Code v2.1.181(6月17日リリース)以降はRust移植版を使用しており、Linuxでの起動速度が10%向上しましたが、ほとんど誰も気づきませんでした。Sumner氏は「退屈なのは良いことだ」と述べています。
Anthropicで働く利点の一つはトークン代がかからないことですが、この書き換えの推定コストは16万5000ドルにも上ります。プレマージで59億の未キャッシュ入力トークン、6億9000万の出力トークン、720億のキャッシュ入力トークン読み取りを消費しました。これは、協調的な並列エージェントを活用して野心的なプロジェクトに取り組む魅力的なケーススタディです。