H
Howardism
Plate IIEntities機器翻譯 · machine-translatedENHOWARDISM

Bun

一個 JavaScript/TypeScript 執行環境、打包器、套件管理器與 測試執行器,由 Jarred Sumner 建立;每月 CLI 下載量超過 2,200 萬次;Claude Code 的執行環境,以及沙箱動態工作流程所執行的環境;於 2025 年 12 月被 Anthropic 收購,並由 Claude 在 11 天內將 535,496 行 Zig 移植至 Rust(v1.4.0)

Article metadata
Publication details
Published:August 3, 2026
Filed:Entity
Domain:Entities
Tags:EntitySoftwareAnthropicAI Coding
Reading:5 min
Source:AI-synthesised
About this piece

Articles in this journal are synthesised by AI agents from a curated wiki and are refreshed automatically as new concepts arrive. Topics, framing, and editorial direction are curated by Howardism.

Bun 插圖

資料來源#

摘要#

一個 JavaScript 與 TypeScript 執行環境,整合了通常分屬五種工具的功能:轉譯器/縮小器/打包器、相容 npm 的套件管理器、類似 Jest 的測試執行器、相容 Node.js 的模組解析與 API 表面(fs、net、tls、…),以及 HTTP/WebSocket 用戶端。由 Jarred Sumner 建立;他在 2021 年 4 月 16 日寫下第一行 Zig,並在一年內獨自推出初版——範圍是逐行將 esbuild 的 Go 轉譯器移植到 Zig——當時大型語言模型尚未普及。截至 2026 年年中,CLI 每月下載量超過 2,200 萬次;Claude Code 與 OpenCode 都以它為基礎,而 Vercel、Railway 和 DigitalOcean 也提供原生支援。

**於 2025 年 12 月被 Anthropic 收購。**Sumner 與 Bun 團隊成員都是 Anthropic 員工——這項揭露會影響本 wiki 對每一項源自 Bun 的主張如何評估。

為何它對本 wiki 重要#

Bun 出現在三個不同層面,這種情況並不常見,也很容易混為一談:

  1. 作為 Claude Code 的執行環境——產品所建構於其上的基礎(Claude Code)。
  2. 作為沙箱——動態工作流程會在 Bun 執行環境的 VM 中執行由模型撰寫的協調程式。
  3. 作為移植工作的主體——Zig→Rust 移植是同一協調原語的代表性實例。

Zig→Rust 移植(v1.3.14 → v1.4.0)#

Bun 的核心工程難題在於:JavaScriptCore 使用垃圾回收,而 Zig 採用手動記憶體管理;Zig 又沒有解構子——每個呼叫點都要用 defer 明確寫出清理作業。反覆出現的錯誤包括釋放後使用、重複釋放,以及錯誤路徑上忘記釋放。既有的緩解措施(修補過、啟用 ASAN 的 Zig 編譯器、Windows 上的 ReleaseSafe 建置、全天候 Fuzzilli 模糊測試、端對端洩漏測試)已經「比許多專案做得更多」,卻仍然不夠。

這次移植涵蓋 1,448 個檔案中的 535,496 行 Zig,歷時 11 天,運用了約 50 個 Claude Code 動態工作流程,並產生 6,502 個提交;相關記錄見 動態工作流程:代理程式的代數。成果包括:修復 128 個在 v1.3.14 上可重現、但於 v1.4.0 修復的錯誤;清除所有可插樁追蹤的記憶體洩漏;二進位檔縮小約 20%;速度提升 2–5%;以及 19 個已知回歸問題。Bun v1.3.14 是最後一個 Zig 版本;v1.4.0 則是第一個 Rust 版本。

促成移植順利進行的特性原本只是偶然:Bun 的測試套件以 TypeScript 撰寫,因此不依賴執行環境的實作語言,移植後也原封不動地保留下來——約 4,175 個檔案中有超過 100 萬個 expect() 斷言,沒有任何測試遭到跳過或刪除。

合併後的公開儲存庫狀態#

值得將這部分與移植過程分開看待,因為兩者很容易混淆。對公開儲存庫進行的外部稽核(Lockwood,2026-07-27,case-study)發現:

  • 自 bun-v1.3.14(2026-05-12)以來沒有新的發布標籤——已過 11 週,距離合併至 main 也已 6 週。Bun 過去最長的發布間隔為 6 週(v0.2.2 → v0.3.0,2022 年底)。Sumner 在 7 月 8 日發布文章時,v1.4.0 仍只提供 canary 版本。
  • 開啟中的 robobun PR 從 1,277 件增至約 2,475 件,期間為 7 月 9 日至 7 月 27 日;依觀察到每次合併至 Buildkite 約需 40–90 分鐘估算,要清空佇列代表需連續運作約 86 天。
  • Anthropic 員工與代理程式群共同撰寫 PR,且合併後 Rust 相關工作逐步增加。

這並不與「Claude Code 自 v2.1.181 起已交付 Rust 移植版」相矛盾:Claude Code 會隨附 Bun,因此在其中部署至正式環境的成品,與有發布標籤的公開 Bun 版本是不同的。儲存庫狀態顯示,Sumner 記錄的穩定化收尾工作在最後一個標籤發布 11 週後仍在進行——成本與完成之間的解讀,請見動態工作流程:代理程式的代數。

相關連結#

  • Jarred Sumner — 建立者;移植方法的作者
  • Anthropic — 收購方(2025 年 12 月),也是讓每項 Bun 主張都屬於第一方資訊的雇主
  • Claude Code — 以 Bun 為基礎;自 v2.1.181(2026-06-17)起在正式環境使用 Rust 移植版,Linux 啟動速度快約 10%
  • 動態工作流程:代理程式的代數 — Bun 所提供的沙箱,以及這次移植的代表性案例
  • 驗證成為新的瓶頸 — Bun 的語言無關測試套件,是讓這次移植可供驗證的基礎
  • Boris Cherny — 曾以第二手資訊說明移植階段,後來由第一方文章更正

資料來源#

  • Rewriting Bun in Rust — Jarred Sumner,bun.com(2026-07-08,case-study):範圍、歷史、收購揭露、移植及其成果
  • Boris Cherny: We Cut 80% of Claude Code's Prompt — Y Combinator 訪談(2026-07-27,practitioner-opinion):Bun 作為 Claude Code 執行環境及動態工作流程沙箱的角色
  • How is the Bun Rewrite in Rust Going? — Tom Lockwood,lockwood.dev(2026-07-27,case-study,獨立來源):最後一個發布標籤後 11 週的公開儲存庫狀態——標籤歷史、robobun PR 佇列增長、Buildkite 合併時間
§ end
Cited by 8
  • Dynamic Workflows: An Algebra for Agents×3

    > Disclosure, load-bearing. Bun was acquired by Anthropic in December 2025; Sumner and the Bun team…

  • Anthropic×2

    2025 December — acquired Bun, the JavaScript runtime Claude Code is built on; Jarred Sumner and the…

  • Claude Fable 5×2

    Jarred Sumner ported Bun from 535,496 lines of Zig to Rust in 11 days using a pre-release version…

  • Jarred Sumner×2

    Creator of Bun. Wrote his first line of Zig on April 16, 2021, having bet on the language after…

  • Claude Code

    Runtime: built on Bun. In July 2026 Cherny reported Bun itself was rewritten from Zig to Rust by…

  • Closed-Loop AI Review

    Stacked reviewers on one repo. Orosz says Bun has CodeRabbit, GitHub Code Review and Claude Code…

  • Entities — People, Orgs, Tools & Projects

    Bun — The JavaScript/TypeScript runtime, bundler, package manager and test runner created by Jarred…

  • Optimizer–Evaluator Decoupling

    Jarred Sumner's account of porting Bun from Zig to Rust (rewriting bun in rust, case-study,…

Related articles
  • Claude Code

    Anthropic's agentic coding product; created by Boris Cherny late 2024; TypeScript/React on Bun (itself Claude-rewritten…

  • Anthropic

    AI safety company / vendor of Claude; mission-as-tiebreaker culture; ~30–40 PMs across teams; Mike Krieger leads Labs r…

  • Boris Cherny

    Creator of Claude Code at Anthropic; phone-driven workflow with hundreds of agents; primary advocate of `/loop` primiti…

  • Dynamic Workflows: An Algebra for Agents

    Claude Code's sandboxed orchestration primitive: Claude writes and runs a program that composes agents in sequence and…

  • Jarred Sumner

    Creator of the Bun runtime, now an Anthropic employee after the December 2025 acquisition; author of 'Rewriting Bun in…