AI News HubLIVE
站內改寫1 分鐘閱讀

用Rust重寫Bun

Jarred Sumner詳細介紹了使用AI編碼代理將Bun從Zig重寫為Rust的過程。TypeScript測試套件充當了合規套件,使得自動化移植成為可能。重寫花費了約16.5萬美元的API令牌,新的Rust版本已在Claude Code中上線,Linux上啓動速度提升了10%。

Jarred Sumner 終於發佈了關於將 Bun 從 Zig 重寫為 Rust 的詳細博文。雖然他已經從5月9日開始預告,但實際重寫花費的時間更短。這篇文章詳細描述了一次極其複雜的智能工程實踐,涉及動態工作流、試運行、對抗性審查等多種技巧。

Sumner 在博文前半部分高度讚揚了 Zig,認為如果沒有 Zig,Bun 不可能走到今天。但隨後他指出了核心問題:Bun 的 bug 列表令人沮喪,尤其是大量 use-after-free、double-free 和忘記釋放內存的錯誤。在安全的 Rust 中,這些錯誤是編譯錯誤,並且有 RAII 自動清理機制。這促使了重寫決定。

眾所周知,從頭重寫大型軟件通常是不明智的。Joel Spolsky 早在2000年就強調了這一點。但如今的前沿模型驅動的編碼代理改變了這一等式。一個關鍵的促成因素是 Bun 的測試套件是用 TypeScript 編寫的,這使它能夠充當合規套件。代理框架利用這一套件自動化了大部分從 Zig 到 Rust 的移植工作。最初這只是個實驗,但幾天後測試通過率大幅上升,Sumner 的信心從“值得一試”轉變為“我要合併這個版本”。

在11天的大部分時間裏,Sumner 監控工作流,手動檢查輸出,並提示 Claude 修改循環以修復問題。面對超過100萬行新增代碼的拉取請求,他採用了一種語言無關的測試套件(包含百萬級斷言)、對抗性代碼審查,並在出錯時修復生成代碼的過程而非手動修復代碼。

新的 Rust 版本 Bun 已在 Claude Code 中使用近一個月。Claude Code v2.1.181(6月17日發佈)及之後版本都使用了 Rust 移植版。Linux 上的啓動速度提升了10%,但幾乎沒有人注意到。Sumner 表示“無聊是好事”。

在 Anthropic 工作的一個好處是不需要為令牌付費,因為這次重寫估計花費了16.5萬美元的 API 成本:共消耗59億未緩存輸入令牌、6.9億輸出令牌和720億緩存輸入令牌讀取。這整個案例展示瞭如何利用協調的並行代理來承擔雄心勃勃的項目。