Anthropic的Bun Rust重寫合併:AI速度的體現
最初用Zig編寫的JavaScript工具包Bun,其Rust移植已合併到主倉庫,就在最後一個Zig版本釋出幾天後。藉助AI工具,這次大規模重寫帶來了記憶體安全性提升和更小的二進位制體積。
【Anthropic的Bun Rust重寫合併:AI速度的體現】
2026年5月14日,Anthropic旗下的JavaScript工具包Bun迎來了重大變革。一個將Bun從Zig語言重寫為Rust的合併請求(PR)已被合併到主倉庫,新增超過一百萬行程式碼。這也標誌著Bun的1.3.14版本成為最後一個基於Zig的正式版本。
Bun的建立者Jared Sumner在幾天前曾表示,“有很高的可能性所有程式碼都會被丟棄”,但如今這一重寫已成功落地。據悉,合併後的Rust程式碼在所有平臺上都透過了Bun的測試套件,修復了一些記憶體洩漏問題,並將二進位制檔案大小減少了3到8MB。Sumner強調:“最重要的是,我們現在擁有了編譯器輔助工具來捕獲和預防記憶體錯誤,這些錯誤多年來耗費了團隊大量的開發和除錯時間。”效能方面,他表示要麼中性要麼更快,但程式碼庫“採用相同的架構和相同的資料結構”,且未使用非同步Rust。
Bun使用者在生產環境中部署時曾遇到記憶體洩漏問題。Sumner解釋說,Rust並不能捕獲所有洩漏,比如因引用持有時間過長或跨JS邊界重入導致的問題仍然存在。但很大一部分問題,如釋放後使用、二次釋放、錯誤路徑未釋放等,現在將成為編譯錯誤或自動清理的物件。
這次遷移的速度令人驚歎,而這得益於AI工具的廣泛應用。Sumner承認,自被Anthropic收購前,團隊已經很久沒有手動輸入程式碼了,AI(尤其是Claude Code)負責編寫了幾乎所有程式碼。這一工作方式與Zig的“無AI”政策產生了衝突。事實上,Bun團隊一直使用一個Zig分支,其貢獻無法合併到上游,而Zig維護者表示即使不考慮AI因素,這些貢獻也不受歡迎。
在版本1.3.14中,除了作為Zig版本的絕唱,還引入了一個內建影像處理API,可作為Node.js Sharp庫的即插即用替代品,並實驗性支援HTTP/3(QUIC)協議。完整發布說明列出了這些及其他新功能。Bun從Zig到Rust的遷移將受到AI倡導者和懷疑者的密切關注:如此快速的遷移是否會導致不穩定?這一案例將為AI輔助重寫大型專案提供寶貴的經驗。
總之,Bun的Rust重寫是AI在軟體開發中日益重要的一個標誌性事件。它展示了AI工具如何加速重大技術轉型,同時也暴露了社群政策分歧帶來的挑戰。未來的發展值得持續關注。