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工具如何加速重大技術轉型,同時也暴露了社區政策分歧帶來的挑戰。未來的發展值得持續關注。