Open Source

Bun 1.4 改寫成 Rust:64 個 Claude 代理 11 天完成的大搬遷

JavaScript 執行環境 Bun 釋出 1.4.0,首個以 Rust 重寫的版本:Claude Code 動態工作流程搭配 Claude Fable 5,以 64 個並行代理在 11 天內移植約 53.5 萬行 Zig 程式碼,API 成本約 16.5 萬美元。

Bun 1.4 改寫成 Rust:64 個 Claude 代理 11 天完成的大搬遷 — 文章封面
本頁內容6 個段落
  1. 為什麼放棄 Zig
  2. 十一天與 64 個並行代理
  3. 測試與對抗式審查守住品質
  4. 效能、記憶體與上線狀況
  5. 給代理時代的工程啟示
  6. 參考來源

2026 年 7 月 8 日,Bun 釋出 v1.4.0——這個 JavaScript 執行環境的第一個 Rust 版本,v1.3.14 則是最後一個 Zig 版本。2025 年底被 Anthropic 收購後,創辦人 Jarred Sumner 這次不是漸進改版,而是把整個執行環境搬進 Rust;更引人注目的是,絕大部分程式碼並非人手重寫,而是由 Claude Code 的動態工作流程搭配尚未發表的 Claude Fable 5,以機械式移植完成。

為什麼放棄 Zig

動機很具體:v1.3.14 帶著一串記憶體管理錯誤出貨,use-after-free、double-free 與記憶體洩漏散布在 node:zlibnode:http2fs.watch、CSS 解析器等多個模組。Sumner 把根源歸結於:JavaScriptCore 的垃圾回收值與手動管理的記憶體並存,而 Zig 要求在每個呼叫點手寫清理,漏掉一個就是洩漏或重複釋放。整個程式庫有 535,496 行 Zig,他也評估過 C++,但那只是換一種方式靠人工把關。他的結論只有一句:「編譯錯誤是比風格指南更好的回饋迴圈。」在安全的 Rust 裡,這些錯誤直接變成編譯失敗,資源自動釋放。他依然肯定舊夥伴:沒有 Zig,一年內做不出這麼多東西。

十一天與 64 個並行代理

時間軸本身就像壓力測試:5 月 3 日開工,5 月 14 日合併。峰值同時有 64 個 Claude 上工,分成 4 條工作流程、散在 4 個 worktree;1,448 個 .zig 檔換成 .rs 檔,約 16,000 個編譯錯誤被切分給各代理分頭消化。峰值輸出約每分鐘 1,300 行,總計 6,502 個 commit,最終 diff 超過百萬行。秩序靠兩份文件維持:一份移植指南定義機械式搬移的規則,另一份對照表逐一記錄欄位的生命週期。Sumner 起初不確定行得通,跑了幾天、測試大量通過後,才決定整支合併。

測試與對抗式審查守住品質

品質防線有三道。第一道是測試:零測試被跳過或刪除,約 139 萬個斷言全數保留——這套以 TypeScript 寫成的測試,剛好成為與實作語言無關的一致性套件,讓代理能反覆自我驗證。第二道是對抗式審查:一個代理實作,至少兩個代理在只看得到 diff 的獨立上下文裡挑毛病,審查者被明確指示拒絕冗長的辯解註解——如果某個繞道寫法需要一整段解釋,就代表程式碼本身錯了,該修的是程式碼。第三道是事後防護:移植引入的 19 個回歸全數修復,之後又跑了多輪安全審查與千億次等級的解析器模糊測試。

效能、記憶體與上線狀況

結果不是「重寫變慢」的老劇本,而是全面小幅向上:

  • 每秒請求數從 169.6k 增至 177.7k
  • next build 從 13.62 秒縮到 13.03 秒,tsc 也變快
  • 連續兩千次建置的記憶體從 6,745 MB 降到 609 MB,舊版每次約洩漏 3 MB
  • 二進位檔縮小約兩成,Windows 與 Linux 皆然
  • 順手修掉 128 個舊版可重現的錯誤

帳單同樣具體:59 億未快取輸入、6.9 億輸出、720 億快取讀取,以牌價計約 16.5 萬美元,約當於三位工程師做一年。它也已悄悄上線:Prisma 的運算服務測試版跑在上面,Claude Code 自 v2.1.181 起改用,Linux 啟動快了一成。他說:「無聊是好事。」

給代理時代的工程啟示

Simon Willison 的評論把這件事放進更長的脈絡:Joel Spolsky 在 2000 年寫下「永遠不要從頭重寫」的鐵律,而前沿編碼代理加上百萬行等級的一致性測試,第一次讓這條鐵律出現例外條件。對工程團隊的啟示有三:把約束寫進編譯器與測試,而不是風格指南;讓審查者在隔離的上下文裡只看 diff,避免被實作者的敘事牽著走;當移植成本從「人年」降到「十一天加一張帳單」,遷移決策的框架已經換了一組變數。對維護大型開源專案的人,這次實驗的價值不在 Rust 本身,而在於示範了一套可複製的流程:先把人肉規則換成機器可驗證的約束,再讓大量代理在嚴格測試與獨立審查下並行施工。正如他所說,今天一位工程師能做的,比一年前多得多。

參考來源

本文由 AI 協助自上述來源整理,經人工審核後發布。

這篇內容對你有幫助嗎?

支持本站繼續整理實用的 AI 文章、教學與開發筆記。

請我喝杯咖啡
分享X電郵