伺服器端 JavaScript 平台 Bun 的創建者兼首席開發者 Jarred Sumner 宣布,他利用 AI 助手 Claude Code 將專案從 Zig 重寫為 Rust 的實驗取得了成功,並決定將 Bun 遷移到 Rust。 Rust 重寫版本已提交到專案的主程式碼庫,而 Zig 程式碼將被刪除。 Bun 的作者也宣布,他們正在招募擁有五年以上 C/C++ 和 Rust 開發經驗的支援人員。
目前,Zig 語言的 Rust 版本已經實作。它包含大量不安全程式碼區塊,並使用了相同的架構、資料結構和現有外部函式庫。該 Rust 版本已成功通過所有平台上的現有測試套件。此外,還修復了多個記憶體洩漏和測試失敗的問題。
Rust 版本建置完成後,其可執行檔比 Zig 版本小 3-8 MB。效能測試表明,Rust 版本速度更快或與 Zig 版本持平。然而,據 Jarred 所說,Rust 版本最重要的優勢在於能夠捕獲並防止記憶體錯誤,而這在 Bun 開發者近年來一直是一項極其耗時的任務。
先前曾提到,將程式碼重寫為 Rust 的原因包括:希望修復 Bun 中由記憶體洩漏引起的問題;與 Zig 的作者在利用 AI 編寫程式碼方面存在分歧;以及 Zig 的政策是接受破壞相容性的語言更改,這對於大型專案來說是不可接受的。
Bun JavaScript 平台旨在成為 Node.js 和 Deno 的高效能替代方案。該專案在開發時充分考慮了與 Node.js 伺服器應用程式的兼容性,並支援大部分 Node.js API。該平台包含一套用於建立和運行 JavaScript 和 TypeScript 應用程式的工具,以及一個無需瀏覽器即可執行 JavaScript 應用程式的執行時間環境、一個套件管理器(相容 NPM)、測試工具、一個獨立的套件建構器,以及一個用於嵌入 C 語言編寫的處理程序的層。在效能方面,Bun 顯著優於 Deno 和 Node.js(在基於 React 框架的測試中,Bun 的效能是 Deno 的兩倍,是 Node.js 的近五倍)。 JavaScript 執行由 JavaScriptCore JavaScript 引擎和 WebKit 元件(透過額外的修補程式)提供支援。
來源: opennet.ru
