编程 Bun 1.4 发布:从 Zig 重写为 Rust,空闲 CPU 占用降到 1/5

2026-10-05 21:03:19

Bun 1.4 发布:从 Zig 重写为 Rust,空闲 CPU 占用降到 1/5

Bun 1.4 于 2026-08-20 发布。发布说明:https://bun.com/blog/bun-v1.4,仓库:https://github.com/oven-sh/bun。

这个版本有两个主线:Node.js 兼容性继续补齐,以及运行时从 Zig 重写为 Rust 后带来的性能变化。同时,一批原本要装第三方依赖的能力被收进内置标准库。

Node.js 兼容性

从 Node.js 测试套件新增 +1517 个通过的测试,是 Bun 1.0 以来 Node.js 兼容性最大的一次跃进;同时修复 2900+ 问题。

对已经在用 Bun 跑 Node 项目的场景,这类提升通常比新 API 更直接:测试通过数增加意味着更多依赖和边界行为可以按 Node 的预期跑通,迁移时遇到的「这个模块行为不对」会少一些。

性能

  • 空闲 CPU 占用降低到 1/5(5x)
  • 内存占用最多降低 35%
  • Linux 上启动快 50%

空闲 CPU 和内存的优化对常驻进程、开发服务器、CI 环境更明显。Linux 启动快 50% 则会影响 bun run、bun test 这类高频调用的命令。

Rust 重写

Bun 从 Zig 重写为 Rust。这是第一个用 Rust 版本发布的版本。

发布信息里提到,Claude Code 已用 Bun 的 Rust 移植数月,Prisma 在它之上发布了 Prisma Compute。这两个使用方都出现在发布节点上,说明 Rust 版本不是只跑通了构建,而是已经在实际产品里用了较长时间。

新增内置标准库

1.4 把一批原本需要第三方依赖的能力收进内置标准库:

  • Bun.Image:图像处理,替代 sharp 类需求
  • Bun.WebView:无头浏览器,替代 puppeteer 类需求
  • Bun.markdown:Markdown 渲染
  • Bun.cron():定时任务
  • Bun.Terminal:原生 PTY
  • Bun.XML:XML 解析
  • Bun.Archive:tar 包
  • Bun.slice
  • Bun.wrapAnsi

其中 Bun.Image、Bun.WebView、Bun.markdown 覆盖的是过去经常要单独装包的三类需求:图像处理、无头浏览器、Markdown 渲染。收进运行时后,项目依赖会少一层,版本对齐和原生模块编译的问题也会少一些。

Bun.cron() 用于定时任务;Bun.Terminal 提供原生 PTY,适合需要终端交互的场景;Bun.XML 做 XML 解析;Bun.Archive 处理 tar 包。Bun.slice 和 Bun.wrapAnsi 则是两个更细粒度的工具方法。

新增命令

  • bun run --parallel:并行跑脚本
  • bun test --parallel
  • bun audit fix
  • bun dedupe
  • bun prune

bun run --parallel 和 bun test --parallel 把并行执行做成命令参数,不用再自己写脚本调度。bun audit fix、bun dedupe、bun prune 则补上了依赖审计、去重和清理相关的包管理操作。

其他改动

  • Bun.serve 支持路由静态文件。
  • Playwright 更新、Streams 与 body 相关改进。

Bun.serve 可以直接路由静态文件后,用 Bun 起一个带静态资源服务的 HTTP 服务会更省事,不必再单独接静态文件中间件。

整体看,1.4 把图像处理、无头浏览器、Markdown 这些原本要拉第三方依赖的能力收进内置标准库,同时用 Rust 重写换性能。对已经用 Bun 的项目,升级后可以先关注 Node.js 测试通过数的变化、空闲 CPU 和内存占用,以及新标准库能否替换掉现有依赖。

复制全文 生成海报 Bun JavaScript 运行时

推荐文章

程序员茄子在线接单