Bun核心程式碼轉向Rust,重寫成果已併入主分支
Jarred Sumner表示,Rust重寫版本在Linux x64 glibc環境中,已通過Bun既有測試套件的99.8%。他也提到,重寫後大致仍是相同程式碼基礎,但現在可以由編譯器協助檢查型別的生命周期,並在需要時使用解構子處理資源釋放,而原本較難處理的部分也會以unsafe標示出來,讓需要重構的程式碼更容易被看見。
Bun原本以Zig語言開發,並採用Apple開源的JavaScriptCore作為JavaScript執行引擎,可同時作為JavaScript執行環境、套件管理器與測試工具,讓開發者在部分情境下以Bun取代Node.js。
Jarred Sumner說明重寫原因時提到,他已厭倦持續擔心並花費大量時間修正記憶體洩漏、崩潰與穩定性問題,希望程式語言本身能提供更強的預防工具。他另稱,這次重寫規模約96萬行程式碼,Linux測試套件已能通過,其他平臺也將接續跟進,後續還會分享重構對Bun的效能、記憶體使用與可維護性等部分造成的影響。
從目前狀態來看,Bun已將Rust重寫成果併入主分支,但Jarred Sumner也提醒,這項工作在進入非Canary版本前仍需進行最佳化與清理。也就是說,Rust重寫雖已進入主線開發流程,但穩定版Bun還未全面改用Rust。
另外,除了Bun核心以Rust重寫的資訊,官方還釋出Bun 1.3.14版本,更新包括新增圖片處理功能Bun.Image,加入全域虛擬套件儲存機制,讓不同專案的套件透過符號連結指向全域儲存位置,減少重複複製套件檔案,也替Bun.serve加入實驗性HTTP/3支援,並重寫檔案變更監看功能。該版本也升級JavaScriptCore,改善執行環境底層相容性與效能表現,並縮小Linux與Windows版Bun可執行檔體積,macOS版變化則不大。
Comments (0)