AGENTIC COMMONSAI 產業簡報

繁中EN

主題AI 編程與開發工具出版

返回文章列表

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

本頁內容6 個段落
  1. 告別 Zig 的理由
  2. 64 個代理並行、11 天完工
  3. 品質由三道防線守住
  4. 跑分、記憶體與實際部署
  5. 給代理時代的工程課
  6. 資料來源

摘要: 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 本身,而是留下了一套可照著做的流程:先把人肉規則換成機器驗證得了的約束,再讓大批代理在嚴格測試與獨立審查的護欄下同時開工。正如他所說,今天一位工程師能完成的事,遠比一年前多。

資料來源

AGENTIC COMMONS由 PHLEGON LABS 經營
分享X電郵
支持我們

相關閱讀

  1. 在 Claude Code 進程裡跑自己的程式碼:Claude Mods 用三個檔案改寫終端介面

    Claude Mods 從 v2.1.287 起預設開啟:一個 TypeScript 檔案的函式掛鉤能在 Claude Code 自己的進程裡重寫事件、畫出介面。

    Claude Code

  2. DeepSeek 開源 Agent Harness:一切皆外掛的開發者預覽

    2026 年 8 月 13 日,DeepSeek 以 MIT 授權公開 DeepSeek Harness 開發者預覽:Cordis 核心做到一切皆外掛,附錄影重播的會話日誌與四種執行模式,原始碼與外掛生態同步開放。

    Agent Harness

  3. Block 開源 Buzz:團隊聊天、AI 代理與 Git 託管共用一條事件流

    Block 於 2026 年 7 月 21 日開源工作區 Buzz,把團隊聊天、AI 代理人與 Git 託管放進同一套簽名事件系統,明言要減少對 Slack 與 GitHub 的依賴。

    AI Agents