JS ランタイム Bun、Rust への書き換えを完了──バイナリ 8MB 削減とメモリ安全性向上を実現
Zig から Rust への移行により、既存テストを全パスしつつバイナリ軽量化とデバッグ効率の大幅改善を達成した。
リリース: 2026-05-14 · 読了 2 分記事の要約
1. 核心(What)
- JavaScript ランタイム Bun の Rust への書き換え PR がマージされ、全プラットフォームで既存テストをパスした。
- バイナリサイズが 3 MB から 8 MB 縮小し、実行速度ベンチマークは同等または高速化を記録している。
- 長年の課題だったメモリ関連バグのデバッグ工数を削減するため、Rust のコンパイラによるチェック機能を導入した。
- アーキテクチャやデータ構造は維持されており、外部ライブラリへの依存を最小限に抑えつつ async Rust は使用しない方針を継続する。
2. 影響(Why)
- Rust の借用チェッカーを味方につけたことで、Zig 時代に開発チームを苦しめたメモリリーク調査の工数を、機能開発へ再配分できる体制が整った。
- 開発者への影響: Bun を採用する開発者は、パフォーマンスを維持したままメモリリークや非決定的なバグに悩まされるリスクが減り、安定したランタイムとして利用できる。
- 日本への影響: [国内 SaaS 開発 業種] のフロントエンド・エッジコンピューティング領域において、Node.js からの移行を検討する際の最大の懸念点であった「安定性」が解消に向かう。
3. 根拠・詳細(How)
- Rewrite Bun in Rust by Jarred-Sumner · Pull Request #30412 · oven-sh/bun (2026-05-14 公開)