摘要: Bun 於 2026 年 7 月 8 日推出 v1.4.0,把原本 535,496 行 Zig 專案改為 Rust;高峰有 64 個 Claude 代理並行,5 月 3 日開工、5 月 14 日合併。品質驗證保留約 139 萬個斷言、採用只看 diff 的對抗式審查,後續修完 19 個回歸並進行安全審查與模糊測試。文中列出請求處理量提升、重複建置記憶體下降,二進位檔約小兩成。
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:zlib、node:http2、fs.watch、CSS 解析器等多個模組。Sumner 把根源歸結為兩套記憶體管理並行——JavaScriptCore 的垃圾回收值與人工配置的記憶體同時存在——而 Zig 規定開發者在每個呼叫點親手補上清理邏輯,少寫任何一處,下場就是洩漏或重複釋放。整個專案共 535,496 行 Zig。他也評估過 C++,但那只是把把關責任換個形式退回人工。他的結論壓縮成一句話:「編譯錯誤是比風格指南更好的回饋迴圈。」改用安全的 Rust 之後,這類缺陷直接在編譯階段報錯,資源釋放也交由語言自動處理。他對老戰友依舊肯定:若沒有 Zig,一年之內做不出這麼多東西。
64 個代理並行、11 天完工
時間軸本身就是一場壓力測試: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 本身,而是留下了一套可照著做的流程:先把人肉規則換成機器驗證得了的約束,再讓大批代理在嚴格測試與獨立審查的護欄下同時開工。正如他所說,今天一位工程師能完成的事,遠比一年前多。
