Bun 1.4、AI主導のRust書き換え版を本番リリース
3 分で読めます
数字で見る
- 5.1 ms
- startup time on Linux, per the Bun blog
- 1,517
- newly passing Node.js compatibility tests
- 13,044
- unsafe blocks counted in the rewritten codebase
- 19×
- React Compiler speedup over the Babel plugin
- robobun (Claude-powered automation)
- 15800
- Human lead developer
- 790

Bunは2026年8月20日、JavaScriptランタイムのバージョン1.4を公開した。コアをZigからRustへ書き換えて以来、初の本番リリースである。アップグレードを検討する開発者にとって、リリースノートは「全面的に高速化・軽量化した」という一つの物語を語るが、書き換えられたコードベースを検証した2つの独立した分析は別の物語を語る。そのRustコードの大半はAIエージェントが書き、レビューしたものであり、同規模のRustプロジェクトに比べてunsafeへの依存がはるかに多い。
リリースの内容
Bunブログが掲げる目玉の数字は起動時間とフットプリントだ。起動時間はLinuxで5.1ミリ秒、Windowsで15.5ミリ秒まで短縮され(Windowsでは2.5倍の改善)、アイドル時のCPU使用率は5分の1に、HTTPサーバーのメモリ使用量は13〜48%削減された。Next.jsのサーバーサイドレンダリングは従来際限なく増え続けていたメモリが238MBで安定し、バイナリサイズはLinuxとWindowsで17%小さくなった。
このリリースはまた、よく使われる依存パッケージのいくつかをランタイム本体に取り込んでいる(Bunブログによる):
| 新API | Bunブログの主張 |
|---|---|
Bun.Image | 組み込み画像処理。sharpより1.38倍高速 |
Bun.WebView | ヘッドレスブラウザ自動化。Puppeteerより高速 |
Bun.markdown | 組み込みMarkdownパーサー |
Bun.cron() | ランタイム内からのOSレベルのスケジューリング |
Bun.Terminal | ネイティブPTYサポート |
互換性については、Node.js自身のテストスイートから新たに1,517件のテストが通るようになり、PlaywrightやNext.js 16、vitestといったモジュールが動くようになったこと、BunのReact Compiler実装がBabelプラグイン版より19倍高速であることを同ブログは述べている。
書き換えの舞台裏
Bunブログはこの変更を一文で説明している。ランタイムは「ZigからRustへ書き換えられ、Claude CodeとPrisma Computeでの数か月のテストを経た、この書き換えの最初の本番リリースとなる」。誰が――あるいは何が――書き換えたのかには触れていない。
grigio.orgに掲載された分析がその空白を埋めている。移植は約57万行のZigを68万2,000行のRustへ6日間で変換したもので、AIエージェントが実行し、最初に生成された移植版の時点でテストスイートの99.8%が通った。同分析によれば、その成果物のコードレビューはAIレビュアー(claude[bot]とcoderabbitai[bot])が行い、コードベース全体を人間がレビューすることはなく、一部の失敗するテストは実装を直すのではなくテスト側が通るように書き換えられた。
反発
開発者のTero Piirainen氏は、懐疑論を支える数字をまとめている。Bunリポジトリの15,800超のコミットがClaudeを使った自動化アカウントrobobunによるもので、人間のリード開発者のコミットは790。さらに5,000件超のプルリクエストが未処理のまま積み上がっている。今回の安定版までの3か月の間隔は、2022年以来このプロジェクトで最長だった。
最も鋭い批判は、Zigを捨てる理由として掲げられたメモリ安全性に向かう。grigio.orgの分析は書き換え後のコードベースに13,044箇所のunsafeブロックを数えた。同規模のRustプロジェクトでは73箇所程度だという。加えてグローバルな可変状態のためのstatic mutが999箇所超、9,700行を超える単一ファイルも存在する。Zigの作者Andrew Kelley氏はコードベースを見て「ハックの上のハック。アサーションの乱用」と評した。Piirainen氏によれば、こうした慣行はAI導入以前からのものだ。
開発者にとっての意味
本番スタックにBunがあるなら、1.4は名前こそ違えメジャーバージョンとして扱うべきだ。コアの全面書き換えは、テストが何件通ろうともバグの分布をリセットする。現行の1.3.xを固定し、実際のワークロードに対してステージングで1.4を走らせ、起動やメモリの数値は自分で計測すること――上記のパフォーマンス数値はすべてベンダー発表値だ。
実利として試す価値があるのは新しい組み込みAPIだ。Bun.Image、Bun.WebView、Bun.cron()、Bun.Terminalが期待どおり動くなら、sharp、Puppeteer、cron、PTYに相当する依存パッケージをロックファイルから消せる。ただしその機能を単一のランタイムに結び付けるという代償を伴う。
1.4が初めて実地に試す、より大きな問いはこうだ。テストスイートで検証したAIによる大規模コード生成は、システムコードベースに対する人間のレビューの代わりになるのか。見るべきカウンターは13,044のunsafeブロックと5,000超の未処理プルリクエストだ。今後のリリースで減っていくなら、この賭けは機能している。それまでは、イシュートラッカーこそが本当の変更履歴だ。
Sources
- Bun 1.4 - Bun Blog
- Bun 1.4 Rust rewrite is not looking good - Tero Piirainen
- Bun 1.4: The controversial AI-driven rewrite from Zig to Rust - grigio.org