輕量級JavaScript執行環境Bun發布1.2版本,大幅提升對Node.js的相容性,使開發者更容易移植現有專案。新版本更原生支援Amazon S3與PostgreSQL,簡化了存取S3儲存桶和PostgreSQL資料庫的流程,並提升相關操作的效能,進一步加速雲端應用程式的開發。
在Node.js相容性方面,Bun 1.2採用了Node.js的官方測試套件來驗證其相容性。這項改變讓Bun 1.2在執行fs、path、events、string_decoder與stream等Node.js模組時,可通過90%的Node.js官方測試案例,因此開發者在將依賴這些核心模組的Node.js專案,移植到Bun環境時,將會更加順利。
而Bun 1.2現在也新增node:http2、node:dgram、node:cluster與node:zlib等模組的支援,在功能上更進一步拉近與Node.js生態系的差距,同時又能提供更快地執行速度,以node:zlib測試來說(下圖),Node.js吞吐量為171 mb/s,而Bun 1.2則為205 mb/s。
由於Node.js與Bun的JavaScript引擎不同,Node.js採用Chrome V8,Bun則使用Safari的JavaScriptCore,而Bun開發團隊現在於JavaScriptCore中實作了V8的公開C++ API,讓原本依賴這些API的C++套件,也能在Bun環境運作。
除了Node.js相容性外,Bun 1.2原生支援S3與Postgres也是這次更新的一大亮點。Bun 1.2新增了Bun.s3 API,讓開發者能直接操作S3,支援讀取、寫入、刪除檔案,以及產生預簽章URL等操作。開發團隊表示,因為Bun.s3 API採用原生程式碼編寫,讀取效能為使用JavaScript SDK的5倍。此外,Bun 1.2更進一步將S3整合進現有的Bun.file() API中,開發者透過使用s3://協定,就可直接存取S3上的檔案,簡化了開發流程。
而對於PostgreSQL資料庫,Bun 1.2也提供了內建的Bun.sql客戶端,支援以標籤模板語法執行SQL查詢,並自動處理字串跳脫(Escape),避免SQL注入風險。Bun.sql同樣以原生程式碼開發,並針對效能進行最佳化,因此Bun.sql可比其他PostgreSQL客戶端快50%(下圖)。官方還預告,他們很快也會支援MySQL。
在套件管理方面,Bun 1.2將預設的鎖定檔(Lockfile)格式從二進位的bun.lockb改為文字格式的bun.lock。新的bun.lock採用JSONC格式,支援註解與尾逗號(Trailing commas),更易於人工閱讀與版本控制系統比對差異。不過,Bun 1.2仍將維持向下相容支援bun.lockb。開發團隊強調,即使bun.lock是文字格式,但bun install的效能仍比前一版本提升30%。
熱門新聞
2025-01-26
2025-01-26
2025-01-24
2025-01-24
2025-01-26
2025-01-25