テクノロジー
BunがZigからRustへ — 高性能JSランタイムが言語を変える理由
公開日: 2026-05-10
BunはNode.jsより高速なJavaScriptランタイムとして2022年に登場した。JavaScriptCoreエンジンをZigというシステム言語でラップした構成が話題となった。2026年5月10日、創設者Jarred SumnerはRust書き換えが既存テストスイートの99.8%をLinux x64 glibcで通過したと発表した。すでに高速なランタイムがなぜ書き直されているのか。
ZigではなくRust — エコシステムの重力
ZigはC水準の性能とコンパイル時評価を持つ現代的なシステム言語だ。BunがZigを選んだ理由はJavaScriptCoreのC++インターフェースを直接呼び出す際のZigのC FFIが適していたからだ。しかしZigのエコシステムは依然として狭い。crates.ioに相当する中央パッケージレジストリがなく、採用可能な開発者プールも限られている。
一方、Rustは2026年時点でシステムプログラミングの事実上の標準だ。AWS Firecracker、CloudflareのWorkersランタイム、Linuxカーネルドライバーがすべてで実装されている。米国NSAとONCDが公式にRust採用を推奨する理由はメモリ安全性の構造的な保証にある。
BunのRust移行はエコシステムへの参入だ。より多くのコントリビューター、より良いセキュリティツール、より採用しやすいエンジニアがその目的だ。
99.8%が示すもの
完全な書き換えで99.8%のテスト通過は単なる数字ではない。BunチームがZigコードベースに包括的なテストカバレッジを事前に持っていたことの証拠だ。残りの0.2%とmacOS arm64・Windowsプラットフォームのサポートはまだ進行中のため「実験的(experimental)」と明示されている。
The Registerが「まだ半熟(half-baked)」と表現したのは正確だが、半熟は半分が完成しているとも言える。vLLM V0からV1への移行で明示された「最適化より前に正確性を」という原則と同じアプローチだ。
スタートアップへの示唆
Rustネイティブな開発ツールはBunがDenoに続いてRust採用を進めることで、Rustが高性能ランタイムの実装言語として確立されるシグナルだ。Rustの知識を持つチームは3年前と全く異なるオープンソース戦略が使える。
ランタイム移行支援ツールは企業がNode.jsからBunやDenoに移行する際の互換性問題が依然として手作業領域に残っている。移行速度が上がるほど自動化ツールの需要は増える。
参考資料
- Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc — Jarred Sumner (X/Twitter)
- Bun posts Rust porting guide, says rewrite is still half-baked — The Register