Bun1.2.3帶來全新Glob實現——引領效能突破

OSCHINA
↑點選藍字 關注我們
🔗《2024 中國開源開發者報告》正式釋出
線上閱讀:https://talk.gitee.com/report/china-open-source-2024-annual-report.pdf

開源 JavaScript 執行時 Bun 於近日釋出了 1.2.3 版本,此次更新修復了 128 個 bug,並帶來多項重要改進。其中最引人注目的是對 Glob 功能的全面重寫和最佳化,這使得 Bun 的 Glob 實現了效能與正確性的雙重突破。
Glob 模式匹配是現代構建工具的核心功能之一,用於快速查詢和過濾檔案。此次更新中,Bun 團隊將 Rust 生態系統中廣受好評的 fast-glob 庫移植到了 Bun 中,這不僅帶來了顯著的效能提升,更確保了匹配結果的準確性。
新版本特別優化了目錄匹配和 "**" 萬用字元模式的處理,解決了之前版本中存在的多個關鍵 bug。這一改進使得 Bun 的 Glob 實現不僅在速度上領先業界,在可靠性方面也達到了一個新的高度。
除了 Glob 的重大改進,Bun 1.2.3 還為開發者帶來了一個全功能的前端開發工具鏈。現在開發者可以直接透過執行 HTML 檔案來啟動開發伺服器,支援 React 的熱過載功能,並計劃在未來支援 Svelte 和 Vue 等框架。這種零配置的開發體驗大大簡化了前端專案的啟動流程。
在 Web 應用開發方面,Bun.serve () 新增了內建路由功能,支援動態路徑引數和非同步響應,使得全棧應用的開發變得更加流暢。開發者現在可以在同一個程序中執行前端和後端程式碼,無需額外的代理伺服器或 URL 重寫配置。
資料庫方面,Bun.SQL 得到了顯著增強,新增了 sql.array、SQL 片段和 sql.file 等功能,並修復了多個關鍵 bug。新版本支援多語句查詢執行、可配置的預處理語句,以及改進的陣列支援,這些改進使得 Bun 在處理複雜資料庫操作時更加可靠。
在效能最佳化方面,此版本引入了新的 WebAssembly 直譯器 IPInt,取代了原有的 LLInt 直譯器。這一改變顯著減少了 WebAssembly 程式碼的啟動時間和記憶體佔用,因為新的直譯器可以直接執行 WebAssembly 程式碼,而無需先將其轉換為不同的位元組碼格式。
Node.js 相容性也得到了進一步加強,特別是在 Buffer 處理和 Node-API(napi)方面。現在支援完整的證書包載入,Buffer 的多個核心方法得到了改進,確保了與 Node.js 生態系統的更好相容性。
其他值得注意的改進包括:優化了檔案流的記憶體使用、改進了 CSS 處理、修復了 FormData 邊界引號問題,以及增強了 UDP 多播成員資格的穩定性等。此版本還改進了命令列幫助顯示,使得標誌引數的使用更加直觀。
這次更新得到了開源社群的廣泛支援,共有 23 位貢獻者參與其中。特別值得一提的是,probably-neb 和 zackradisic 在改進 Glob 功能方面做出了重要貢獻,而其他貢獻者也在各個方面幫助提升了 Bun 的整體質量。
總的來說,Bun 1.2.3 的釋出標誌著這個年輕的 JavaScript 執行時在效能、功能性和可靠性方面都達到了一個新的水平。
特別是新的 Glob 實現,不僅展示了專案團隊的技術實力,也為未來的發展奠定了堅實的基礎。隨著更多功能的完善和效能的提升,Bun 正在逐步實現其成為主流 JavaScript 執行時的目標。
相關閱讀
相關來源:https://bun.sh/blog/bun-v1.2.3
END
熱門文章
分享在看點贊~Orz

相關文章