| ランタイム | 中核の言語 | 移り変わり |
|---|---|---|
| Bun | Rust(JavaScriptCore は C++) | 2026 年に Zig から Rust へ書き換えた。作業の大半は AI のコーディングエージェント |
| Deno | Rust(標準ライブラリ・Node 互換層は TypeScript / JavaScript) | 大きな変化なし。ごく初期は Go だった(未確認) |
| Node.js | C++(V8・libuv を含む)、標準ライブラリは JavaScript | 全体を別の言語へ移す動きは見当たらない |
gh api repos/<owner>/<repo>/languages が返すバイト数を、割合に直した値です。上位 4 つと、その他の主なものを載せています。
| リポジトリ | 1 位 | 2 位 | 3 位 | 4 位 | その他 |
|---|---|---|---|---|---|
| nodejs/node | JavaScript 66.5% | C++ 22.6% | Python 7.6% | C 1.9% | HTML 0.5%・Shell 0.4% |
| denoland/deno | Rust 62.3% | TypeScript 26.0% | JavaScript 10.3% | C 1.2% | — |
| oven-sh/bun | Rust 76.0% | C++ 13.7% | TypeScript 7.2% | C 1.6% | JavaScript 1.2%・Zig は一覧に無い |
Bun は 2026 年に、実装言語を Zig から Rust に移しました。約 53.5 万行の Zig のコードの移植を、主に Claude Code が行い、人が書くなら 1 年かかる見積もりの作業を約 4 か月で終えたと報じられています。作者は「既存のテストの 99.8% が Linux x64 glibc で Rust 版でも通る」と発表しました。
報道どうしで食い違う点があります。
Zig の作者が批判を公表するなど、反応は割れています(経緯の解説、論考)。
GitHub のリリースのタグで、Zig と Rust のビルド定義の有無を見ました。
| 版 | リリース | build.zig | src/main.zig | Cargo.toml | 実装 |
|---|---|---|---|---|---|
| 1.3.14 | — | あり | あり | なし | Zig |
| 1.4.0 | 2026-08-20 | なし | なし | あり | Rust |
この比較検証で測った Bun(1.4.0・1.4.3・1.4.4)は、すべて Rust 版です。結果レポートと計画書の記述もそれに合わせています。
中核(ランタイム・CLI・V8 との結合)は Rust で、標準ライブラリと Node.js 互換層は TypeScript と JavaScript で書かれています。言語の構成はいまも変わっていません。
ごく初期(2018 年ごろ)は Go で書かれていて、のちに Rust に移ったと記憶しています。今回は確かめていません。
中核は C++ で、V8 と libuv を同梱しています。node:fs などの標準ライブラリは JavaScript です。全体を別の言語へ移す動きは見当たりませんでした。
依存の一部に Rust が入り始めているという話は聞いたことがありますが、今回は確かめていません。