Bun 項目剛剛完成了一次驚人的技術跨越。5月14日,Bun 正式宣布其核心運行時已從 Zig 重寫為 Rust——這個版本包含 6755 個 commit,二進制文件體積縮小 3-8 MB,性能測試在各個平臺上均達到或超越原有水平。
![]()
Jarred Sumner(Bun 的創始人)在公告中透露,這次重寫已經通過了 Bun 原有的完整測試套件,覆蓋所有平臺。更重要的是,它修復了多個長期存在的內存泄漏和 flaky 測試問題。對于一個擁有 9 萬星、每周下載量數十萬次的開源項目來說,這種穩定性提升意義重大——內存問題往往是最難調試、最耗時間的 bug 來源。
![]()
BTW,這個 PR 包含 100 多萬行的新增代碼直接把 GitHub 搞爆了,導致頁面無法加載: https://github.com/oven-sh/bun/pull/30412
從技術角度看,這次重寫保持了兩個關鍵不變:相同的架構設計,相同的數據結構。Bun 依然使用極少的第三方庫,依然不依賴 async Rust。這意味著重寫不是推倒重來,而是在保持原有架構優勢的基礎上,用更安全的語言替換底層實現。
Rust 的價值在于其編譯器提供的內存安全保證。過去多年,內存 bug 消耗了開發團隊大量時間進行調試和修復。Rust 的所有權系統和借用檢查器能夠在編譯時捕獲這類問題,從根本上杜絕了 dangling pointer、buffer overflow 等常見漏洞。對于一個每天處理數十億次請求的 JavaScript 運行時來說,這種保障的價值難以估量。
目前,這一版本已通過 bun upgrade --canary 開放測試。Jarred 也坦誠地提醒:優化工作仍在進行中,最終版本發布前還會有一些清理工作。這是一個成熟開源項目應有的節奏——不為了搶首發而犧牲質量,用 canary 頻道讓早期用戶幫助發現問題,同時保持 stable 頻道的穩定性。
對于整個 JavaScript 生態來說,Bun 的這次嘗試提供了一個有價值的參考:當一個項目發展到足夠大規模時,如何在保持向后兼容的同時,為未來的穩定性投資?用更現代的系統編程語言重構核心組件,是一個值得考慮的選擇。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.