Bun 是主打效能的 JavaScript 與 TypeScript 一體化工具鏈,在 GitHub 累積 96,166 顆星標與 5,100 次複製,其 1.4 版已將核心由 Zig 全面改寫為 Rust,並把十五個常見相依套件內建為標準函式庫。1.4.0 版於 2026 年 8 月 20 日發布,最新修補版本為 1.4.2,專案以 Rust 為主要開發語言,Bun 本體採 MIT 授權。本文將從官方儲存庫與發布說明出發,分析這次改寫的技術脈絡、效能數據與生態影響。

Bun 是什麼?
Bun 是一體化的 JavaScript 與 TypeScript 工具鏈,整合執行環境、套件管理器、打包器與測試框架,以 Rust 撰寫,GitHub 星標逾 96,000。
Bun 的定位是「一個執行檔取代整條工具鏈」。傳統 JavaScript 專案通常需要 Node.js 執行環境、npm 套件管理器、打包器與測試框架各司其職,Bun 則把這四項能力整合進單一二進位檔,開發者安裝後即可直接執行 TypeScript 與 JSX,無須額外編譯設定。
專案由 Oven 團隊主導,儲存庫建立於 2021 年 4 月,其核心執行環境以 JavaScriptCore 為引擎,而非 Node.js 所採用的 V8。這項選擇讓 Bun 在啟動時間與記憶體佔用上取得優勢,同時透過相容層支援 Node.js 的模組系統與 API,官方將其描述為 Node.js 的「可直接替換」方案。
目標受眾涵蓋全端開發者、工具鏈維護者與需要部署大量短生命週期服務的團隊。由於 Bun 同時提供無伺服器部署指引與單一執行檔打包能力,對重視部署體積與冷啟動延遲的應用場景具吸引力。

Bun 1.4 為何改用 Rust 重寫?
Bun 1.4 將核心由 Zig 改寫為 Rust,並重寫 HTTP 等模組。團隊藉 Rust 換取記憶體回收效率與並行安全,Claude Code 已採用該 Rust 版本數月。
語言改寫是 1.4 版最受矚目的變化。官方指出,這是首個以 Rust 撰寫的正式版本,早在此前,Anthropic 的 Claude Code 已在生產環境使用 Bun 的 Rust 移植版本數月,Prisma 亦在其運算平台上採用該版本。這意味改寫並非實驗性質,而是經過實際負載驗證後的架構轉換。
改寫的動機與記憶體管理直接相關。官方將 JavaScriptCore 的記憶體配置器由原本的 libpas 換為 mimalloc,並為其加入局部頁面清除、閒置時釋放記憶體的回收執行緒與延遲歸零等機制。這些調整針對長時間執行服務的記憶體回收效率,也是後續記憶體與 CPU 數據改善的技術基礎。
除核心語言外,HTTP 堆疊亦同步重寫。團隊在發布說明中列出多個模組的相容性進展,並指出這次版本修復超過 2,900 個問題,是自 1.0 版以來規模最大的相容性推進。
Bun 1.4 的效能改善有多少?
1.4 版閒置 CPU 用量降低約五倍,HTTP 伺服器記憶體較 1.3 減少 13% 至 48%,Linux 啟動快一倍,執行檔最多縮小 17%。
CPU 與記憶體是這次改版最明確的收益。官方以 Claude Code 為例,指出其生產環境 CPU 用量的 p99 由 24% 降至 10%,p50 由 5.8% 降至 2.5%;對一個僅輸出問候訊息的程式,閒置 CPU 用量降低約五倍。記憶體方面,使用 HTTP 伺服器的應用可望減少 13% 至 48% 的用量。
官方公布的對照數據涵蓋多個常見框架。在以百萬次請求壓測的條件下,Fastify 的峰值記憶體由 233 MB 降至 120 MB,Express 由 169 MB 降至 92 MB,Next.js 由 397 MB 降至 285 MB,Vite 開發伺服器則由 268 MB 降至 233 MB。同一份測試亦顯示 Node.js 26 的對應數值,Bun 1.4 在多數項目低於 Node.js。
啟動時間與執行檔體積同步改善。Linux 上執行最小程式由 10.9 毫秒縮短至 5.1 毫秒,Windows 由 39.0 毫秒縮短至 15.5 毫秒;Linux x64 與 Windows x64 的執行檔分別由 88.5 MB、93.9 MB 縮小至 77.0 MB 與 84.8 MB,macOS 版本則略增約 1 MB。
Bun 1.4 新增了哪些內建模組?
1.4 版內建 Bun.Image、Bun.WebView、Bun.markdown、Bun.Terminal 與 Bun.cron(),把常見套件收進標準函式庫。
這版把十五個常見套件收進標準函式庫。官方以動畫對照呈現:過去需安裝 sharp、puppeteer、marked、node-cron、node-pty 等相依套件,1.4 版分別以 Bun.Image、Bun.WebView、Bun.markdown、Bun.cron()、Bun.Terminal 取代,且隨二進位檔一併提供,無須安裝步驟、原生編譯或寫入鎖定檔。
Bun.Image 提供解碼、縮放、旋轉與編碼能力,支援 JPEG、PNG、WebP、GIF 與 BMP,API 設計貼近 sharp。官方稱在 1080p PNG 縮放至 400×400 JPEG 的情境下,速度為 sharp 的 1.38 倍,且無須原生外掛;ICC 色彩描述檔在轉碼後仍可保留。
Bun.WebView 則把無頭瀏覽器自動化內建。開發者可以數行非同步程式完成導覽、點擊、執行 JavaScript 與截圖,點擊與捲動皆為受信任的實際輸入事件;在 macOS 上使用系統 WebKit,亦可驅動已安裝的 Chrome、Chromium 或 Edge。此外尚有 Bun.markdown、Bun.Terminal 與 Bun.cron() 等模組,分別對應 Markdown 解析、原生終端機與排程工作。
Bun 1.4 的 Node.js 相容性進展如何?
1.4 版新增 1,517 項 Node.js 測試案例,node:events 與 node:sqlite 全數通過,node:http、node:fs 等模組通過率達 97%。
相容性測試是衡量 Bun 成熟度的關鍵指標。官方將 Node.js 測試套件納入每次提交的驗證流程,1.4 版新增 1,517 項通過案例,是自 1.0 版以來最大幅度的相容性進展。其中 node:quic 通過率達 99%,node:events、node:trace_events 與 node:sqlite 為 100%,node:http、node:fs、node:cluster、node:timers、node:zlib、node:vm 與 node:stream 等模組則達 97%。
生態套件的相容範圍亦同步擴大。官方列出 Nuxt、testcontainers、TypeORM、nock、Fastify 的 inject 機制與 happy-dom 等多個套件已可在 Bun 上運作,Playwright、vitest、OpenTelemetry 與 dd-trace 亦已支援。此外,worker_threads 的資源上限與輸出串流選項、ws 的升級事件,以及伺服器端 STARTTLS 等介面亦已補齊。
官方同時強調相容性仍在推進。發布說明明確指出 Bun 尚未與 Node.js 完全相容,並提供可追蹤測試進度的頁面,供開發者在導入前評估自身相依套件的覆蓋情形。
如何快速開始使用 Bun?
可透過官方安裝指令碼、npm、Homebrew 或 Docker 安裝,於終端機執行 bun run 即可運行 TypeScript,並以 bun install 取代 npm。
安裝路徑相當精簡。Linux 與 macOS 使用者可執行官方安裝指令碼,Windows 可使用 PowerShell 安裝指令,亦支援 npm 全域安裝、Homebrew 與 Docker 映像等管道;安裝完成後於終端機輸入 bun run 即可執行 TypeScript 檔案。
套件管理是導入時最直接的效益。官方在 T3 技術棧的 Next.js 應用上進行六種情境的對照,首次安裝耗時 1.41 秒,較 npm 的 18.1 秒快約十五倍,且峰值記憶體由 503 MB 降至 376 MB;在相依套件無變動的情境下,重新安裝由 337 毫秒縮短至 12 毫秒。啟用隔離式連結器後,專案改以全域虛擬儲存區共用套件,官方稱常見 CI 路徑可再快約七倍。
觀測與診斷工具亦已內建。1.4 版新增以 Markdown 輸出 CPU 與堆積剖析結果的選項,開發者可直接於終端機檢視熱點函式與呼叫樹,或透過環境變數為無法傳入參數的行程啟用剖析,便於在遠端環境排查效能問題。
Bun 與 Node.js、Deno 的差異在哪裡?
Bun 以單一執行檔整合執行環境、套件管理器、打包器與測試框架,並以速度為主要訴求;Node.js 生態最成熟,Deno 則以權限沙箱與標準相容為特色。
三者的差異首先在整合程度。Node.js 作為生態系基石,核心僅提供執行環境,其餘能力需仰賴社群套件補足,優勢是模組數量與長期支援最完整;Bun 則把常用工具鏈收斂為單一執行檔,減少設定與安裝步驟,代價是部分冷門原生模組仍需時間補齊。
效能取向是 Bun 的主要賣點。官方公布的啟動時間、記憶體與套件安裝數據均以 Node.js 為對照基準,1.4 版在 HTTP 串流處理的吞吐量測試中亦高於 Node.js 與 Deno。對冷啟動敏感的無伺服器函式與容器化服務,這類差異會直接反映在成本上。
Deno 的定位則偏向安全與標準。其以權限旗標控制檔案、網路與環境變數存取,並原生支援 TypeScript 與網頁標準 API;Bun 同樣支援 TypeScript,但權限模型不如 Deno 嚴格。團隊選擇時,通常需在生態成熟度、執行效能與安全邊界之間取得平衡。
Bun 的統計數據與授權條件為何?
專案累積 96,166 顆星標與 5,100 次複製,主要語言為 Rust,Bun 本體採 MIT 授權,靜態連結的 WebKit 元件為 LGPL-2。

授權條件對商用採用相當關鍵。官方文件說明,Bun 本體採 MIT 授權,可自由用於商業產品;但其靜態連結的 JavaScriptCore 與 WebKit 元件採 LGPL-2 授權,依該條款,散布時須提供對應的函式庫原始碼或替換機制。企業在打包發行前,應就這項混合授權安排進行合規確認。
技術組成反映改寫的規模。儲存庫語言統計顯示 Rust 佔約五千一百萬位元組,C++ 約一千二百萬位元組,TypeScript 約六百四十萬位元組,其餘為 C、JavaScript 與少量指令碼。目前專案累積約 9,400 個未結議題,社群參與度維持高檔。
最新版本為 1.4.2,於 2026 年 9 月 5 日發布,緊接在 1.4.0 與 1.4.1 之後,主要處理改版後的修補事項。專案於 2026 年 10 月上旬仍有提交紀錄,維護節奏穩定。
出處連結有哪些?
本文資訊整理自 oven-sh/bun 的 GitHub 儲存庫、Bun 官方網站與 1.4 版發布說明,涵蓋架構變化、效能數據、內建模組與授權條件。
- GitHub 儲存庫:https://github.com/oven-sh/bun
- 官方網站:https://bun.com
- 1.4 版發布說明:https://bun.com/blog/bun-v1.4
- 官方文件:https://bun.com/docs
- 授權說明:https://bun.com/docs/project/license
總結:Bun 適合什麼團隊?
Bun 適合追求安裝與啟動速度、並希望以單一工具取代多套工具鏈的團隊;若專案依賴特定 Node.js 原生模組,導入前仍應先驗證相容性。
Bun 1.4 的意義在於把「速度」從行銷訴求轉為可量測的工程成果。語言由 Zig 改寫為 Rust 後,CPU、記憶體與啟動時間的數據同步改善,同時把十五個常見相依套件內建,讓工具鏈的安裝與維護成本明顯下降;Node.js 相容測試新增逾一千五百項,也降低了既有專案的遷移風險。
導入時仍應以相容性為前提。官方坦言尚未達成完全相容,若專案高度依賴原生外掛或冷門模組,建議先在測試環境驗證,再逐步替換套件管理器與執行環境,而非一次全面切換。對以速度為核心訴求、且相依套件覆蓋良好的新專案而言,Bun 1.4 已是值得納入評估的選項。