Bun 1.4 发布:从 Zig 重写为 Rust,Node.js 兼容性大幅提升,新增 1517 项测试
Bun 1.4 正式发布,这是自 Bun 1.0 以来最大的一次 Node.js 兼容性提升。这个版本新增了 1517 项 Node.js 测试套件,修复了超过 2900 个问题,将空闲 CPU 使用率降低 5 倍,内存使用最多减少 35%,Linux 上启动速度提升 50%。更重要的是,Bun 从 Zig 重写为 Rust。
Node.js 兼容性突破
Bun 的设计目标是成为 Node.js 的直接替代品。1.4 版本在每个提交上运行 Node.js 官方测试套件,核心模块的通过率如下:
| 模块 | 通过率 |
|---|---|
| node:http | 97% |
| node:fs | 97% |
| node:cluster | 97% |
| node:timers | 97% |
| node:zlib | 97% |
| node:vm | 97% |
| node:stream | 97% |
| node:quic | 99% |
| node:events | 高 |
这意味着绝大多数 Node.js 应用和库可以在 Bun 上直接运行,不需要修改代码。
从 Zig 到 Rust
Bun 1.4 最引人注目的架构变更是将运行时从 Zig 重写为 Rust。官方博客没有详细解释迁移原因,但这个决定反映了 Rust 在系统编程领域的成熟度和生态优势——更丰富的库支持、更大的开发者社区、更成熟的工具链。
对于用户来说,这次重写带来的直接好处是性能提升和稳定性改善:空闲 CPU 降低 5 倍、内存减少 35%、启动快 50%。
新增 API
Bun 1.4 新增了多个内置 API:
- Bun.Image:图像处理
- Bun.WebView:WebView 组件
- Bun.markdown:Markdown 解析
- Bun.cron():定时任务
- Bun.Terminal:终端操作
新增 CLI 功能
bun run --parallel:并行运行脚本bun test --parallel:并行运行测试bun audit fix:自动修复安全漏洞bun dedupe:去重依赖bun prune:清理未使用的依赖
性能数据
| 指标 | 改善幅度 |
|---|---|
| 空闲 CPU 使用率 | 降低 5 倍 |
| 内存使用 | 最多减少 35% |
| Linux 启动速度 | 提升 50% |
| Node.js 测试覆盖 | 新增 1517 项 |
| 修复问题 | 超过 2900 个 |
升级方式
bun upgrade
或者通过 npm、brew、docker 等方式安装:
npm install -g bun
brew install oven-sh/bun/bun
docker pull oven/bun
Bun 1.4 标志着这个 JavaScript 运行时进入了成熟阶段——Node.js 兼容性达到生产可用水平,性能持续领先,API 生态不断完善。从 Zig 到 Rust 的重写虽然是内部变更,但为未来的性能优化和功能扩展打下了更坚实的基础。
来源:https://bun.com/blog/bun-v1.4