Claude Code 轉換至基於 Rust 的 Bun 執行環境
Claude Code 轉換至基於 Rust 的 Bun 執行環境
Claude Code 現在在 Rust 移植的 Bun 執行環境上執行
Claude Code 版本 2.1.181(於 2026 年 6 月 17 日發布)以及更新的版本內嵌了 Bun JavaScript 執行環境的 Rust 實作。此變更在 Linux 上可帶來約 10 % 的啟動速度提升,且在其他方面與先前的 JavaScript 版表現無異。
來自二進位檔的直接證據
在典型安裝上執行 strings ~/.local/bin/claude | grep -m1 'Bun v1' 會印出:
Bun v1.4.0 (macOS arm64)
官方的 Bun GitHub 發行版最高為 v1.3.14(2026 年 5 月 12 日)。Claude Code 中出現 v1.4.0,表示 Anthropic 正在提供尚未正式發布的 Bun 版本預覽。
Rust 程式碼的來源層級證明
第二次檢查會抽取嵌入的 Rust 原始碼路徑:
strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'
此指令產生 563 個檔名,前幾個為:
src/runtime/bake/dev_server/mod.rs
src/runtime/bake/production.rs
src/bundler/bundle_v2.rs
這些路徑與 Rust 移植的 Bun 倉庫的目錄結構相符,證實二進位檔內含的是編譯過的 Rust 原始碼,而非原始的 JavaScript 實作。
在執行時驗證嵌入的 Bun 版本
@Ajan Raj 提出的巧妙技巧顯示執行環境會回報相同的版本號:
cat > /tmp/bun-version.ts <<'EOF'
console.log("embedded bun:", Bun.version);
process.exit(0);
EOF
BUN_OPTIONS="--preload=/tmp/bun-version.ts" claude --version
輸出為 1.4.0,與先前抽出的字串相符。
發布頻道細節
基於 Rust 的 Bun 透過 canary 頻道分發。執行 bun upgrade --canary 會安裝 Claude Code 二進位檔所參照的確切建置。相關提交(2026 年 5 月 17 日)將 package.json 更新為 1.4.0,且尚未提升至穩定標籤。
社群反應與關切
效能 vs. 穩定性
"在 Linux 上啟動速度提升了 10 %,但其他方面幾乎沒人注意。無聊就是好。" – Jarred Sumner,Bun‑in‑Rust 部落格文章作者。
大多數評論者認為效能提升有限,且此變更對最終使用者而言基本不可見。
為何不直接把 Claude Code 重寫成 Rust?
"為什麼一個 TUI 必須透過 JavaScript 在 terminal React 中執行?如果重寫那麼簡單,為什麼不直接用原生語言重寫 CC?" – @weakfish
共識是 Anthropic 想保留現有以 JavaScript 為中心的開發流程,同時利用 Rust 移植的執行環境提升速度與安全性。
穩定性與錯誤回報
"我在 Claude Code 中遇到段錯誤…整個 Kitty 分頁變得無法使用。" – @Aeveus
部分使用者在切換後報告崩潰與渲染異常,暗示 Rust 移植繼承了 Bun 已知的不穩定性。
"產生的 Rust 程式碼遠非慣用寫法…簡直是禍害。" – @feverzsj
批評者指出,從 Zig/TypeScript 自動轉譯成 Rust 的程式碼難以維護,可能會增加技術債務。
開源治理
"Bun 的治理結構是什麼?…今天基本上是『Anthropic 決定要做什麼、接受什麼』嗎?" – @embedding‑shape
討論凸顯了隨著 Anthropic 成為執行環境主要使用者後,對 Bun 專案治理的不確定性。
結論
Claude Code 迁移至 Rust 移植的 Bun 執行環境屬實、可驗證,且在 Linux 上帶來適度的啟動速度提升。此變更對使用者而言大多透明,但同時也帶來了關於穩定性、可維護性與開源治理的新問題。隨著 canary 版逐漸成熟,開發者應持續關注錯誤回報與效能指標,以評估 Rust 移植是否真的實現了「無聊」卻更快的執行環境。