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:原生 PTYBun.XML:XML 解析Bun.Archive:tar 包Bun.sliceBun.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 --parallelbun audit fixbun dedupebun 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 和内存占用,以及新标准库能否替换掉现有依赖。