本文へスキップ

Bun 1.4、AI主導のRust書き換え版を本番リリース

Bun 1.4はランタイムをZigからRustへ書き換えた初の本番リリース。起動高速化と新APIを提供する一方、批評家は13,044箇所のunsafeブロックを問題視している。

著者 Tech AI Wire Team

3 分で読めます

The Bun logo drawn in ink outline with a solid red gear meshing into its right side

数字で見る

startup time on Linux, per the Bun blog
5.1 ms
newly passing Node.js compatibility tests
1,517
unsafe blocks counted in the rewritten codebase
13,044
React Compiler speedup over the Babel plugin
19×
Commits to Bun, AI automation vs. the human lead, per Tero Piirainen
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ブログによる):

新APIBunブログの主張
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超の未処理プルリクエストだ。今後のリリースで減っていくなら、この賭けは機能している。それまでは、イシュートラッカーこそが本当の変更履歴だ。

出典

  1. Bun 1.4 - Bun Blog
  2. Bun 1.4 Rust rewrite is not looking good - Tero Piirainen
  3. Bun 1.4: The controversial AI-driven rewrite from Zig to Rust - grigio.org

関連記事

グレーのパーカーを着たDHH(デイヴィッド・ハイネマイヤー・ハンソン)氏の近影。Rails World公式のスピーカー写真。
プログラミング

Rails World 2026、DHH氏が「手書きコードは時代遅れ」と発言

Ruby on Railsの生みの親DHH(デイヴィッド・ハイネマイヤー・ハンソン)氏は、2026年8月だけで15万行のコードを書いたと明かした。手書きなら年間3万行程度だったという。37signalsはHeyのメールサーバーをRustで書き直している。

プレーンなグレーの背景に立つShopifyのPoint of Saleカード端末。
プログラミング

ShopifyがReact NativeをやめてSwiftとKotlinへ

ShopifyはReact Nativeに全面移行してから6年後、アプリをSwiftとKotlinで作り直している。移植の多くをコーディングエージェントが担った。