升級方法
bun upgrade
安裝方法
curl https://bun.dev.org.tw/install | bash
如果您在升級時遇到任何問題
WebSocket 伺服器
Bun.serve()
現在內建支援伺服器上的 WebSocket
Bun.serve({
websocket: {
message(ws, message) {
ws.send(message);
},
},
fetch(req, server) {
// Upgrade to a ServerWebSocket if we can
// This automatically checks for the `Sec-WebSocket-Key` header
// meaning you don't have to check headers, you can just call `upgrade()`
if (server.upgrade(req))
// When upgrading, we return undefined since we don't want to send a Response
return;
return new Response("Regular HTTP response");
},
});
如需更多關於在 Bun.serve()
中使用 WebSocket 的資訊,請參閱 readme 檔案
在 Linux 上建立聊天室

若要在您自己的電腦上重現此基準測試,請前往這裡
Bun 的伺服器端 WebSocket 由 uWebSockets 提供技術支援。
RegExp 後向斷言修復
為了處理 #314,Bun 現在包含一個備用的 RegExp 實作,它使用 Oniguruma regex 引擎。感謝 @dylan-conway!
RegExp 後向斷言被熱門的 npm 套件使用,例如 Discord.js
當在 Bun 的執行環境中使用帶有後向斷言的 RegExp 字面量時,Bun 的轉譯器現在會自動將其替換為 Bun.OnigurumaRegExp
。此 API 不適用於轉譯器之外,一旦 JavaScriptCore 原生支援後將會移除。
當在 Bun 的 JavaScript 執行環境中執行時,此輸入
export default /\d+(?=%)/;
轉譯為
export default new globalThis.Bun.OnigurumaRegExp("\\d+(?=%)");
RegExp polyfill 主要基於 JavaScriptCore 自己的 JSC::RegExp
綁定。
更多內容
- 在 HTTP 回應中傳送 Date 標頭
performance.timeOrigin
已實作- 當 Bun 在啟動時沒有 script 以外的參數時 (例如
bun foo.js
),process.argv
會回傳一個空陣列 (感謝 @dylan-conway 的修復) - 修復 BodyMixin 函式拋出錯誤時的崩潰問題
- 修復 HTTP 伺服器中與 Promise 相關的記憶體洩漏問題
- 修復 v0.2.0 的回歸錯誤,其中小型緩衝 (非串流) HTTP 回應主體有時會因為記憶體別名錯誤而包含無效資料
- 修復 Bun 的
WebSocket
客戶端中的 pong 控制框架有時會將WebSocket
置於錯誤狀態的錯誤 https://github.com/oven-sh/bun/commit/c6fe82018aeda88a3337a5355313de7db68ef827 - 修復
WebSocket
客戶端不會保持程序開啟的錯誤 - #1335 - 由於新增了伺服器端 WebSocket,Bun 的客戶端
WebSocket
實作有更多測試覆蓋率 - 為 Bun 的 JavaScriptCore 綁定生成器新增 DOMJIT 函式呼叫支援 (由新的
ServerWebSocket
物件用於publishText
、publishBinary
、sendText
和sendBinary
函式)