欢迎关注微信公众号:FSA全栈行动 👋
2026 年对 Bun 来说简直是分水岭式的年份。
就在之前,Bun 还是基于 Zig 编写的。虽然运行速度快得惊人,但 Zig 版本在内存安全性上始终是个潜在隐患(比如之前出现的 use-after-free 等问题)。随着 2025 年底 Bun 被 Anthropic 收购,这个项目正式进入了"全速进化"模式。
最疯狂的举动莫过于:仅用了 11 天,开发团队利用 Claude Fable 5 辅助,直接将 Bun 从 Zig 重写成了 Rust。这种"暴力"升级直接催生了 2026 年 8 月发布的 Bun v1.4------这是第一个完全运行在 Rust 引擎上的生产版本。
一、重构背后的"激进":11 天完成从 Zig 到 Rust 的跃迁
这次重构的过程简直像科幻小说:535,496 行 Zig 代码变成了超过 100 万行的 Rust 代码,累计产生了 6,502 个 commit。为了搞定这堆代码,团队甚至动用了多达 64 个 Claude 智能体同时开工。
虽然这次"AI 驱动重构"在社区里引发了不小的争议(毕竟有人吐槽生成的 Rust 代码里包含了超过 13,000 个 unsafe 块,而且这次史诗级的 PR 几乎全靠 AI 完成,没有人工直接审核),但结果确实让开发者们闭了嘴。
重构带来的收益非常直观:
-
内存更安全 :
Rust在编译阶段就能规避掉Zig版本中存在的内存溢出和泄漏风险。 -
体积更小:二进制文件体积缩小了约 20%。
-
性能飙升 :
Bun.build()的内存泄漏从6745 MB暴降到了609 MB。
在 Anthropic 自己的生产环境里(也就是 Claude Code 项目),切换到 Rust 版本后,p99 CPU 使用率直接从 24% 降到了 10%。
二、功能大爆发:正在"消灭"你的 node_modules
Bun 的核心逻辑其实一直很明确:不要让你的 package.json 变得臃肿。
以前你写一个全栈项目,可能得装 sharp 处理图片、puppeteer 跑自动化、pg 连数据库、jest 跑测试、webpack 打包......现在,Bun v1.4 试图把这些全部"原生化"。
1、原生集成的高效 API
看看现在的 Bun 已经内置了多少东西:
-
Bun.Image:图片处理,性能比sharp快了 7 倍。 -
Bun.WebView:无需Playwright或Puppeteer,直接调用系统内核的浏览器进行无头测试。 -
Bun.SQL:内置 SQL 客户端,完美支持PostgreSQL、MySQL、MariaDB和SQLite。 -
Bun.cron:直接在运行时写定时任务,不再需要node-cron。 -
Bun.Archive:内置压缩/解压功能,告别tar或archiver。
2、TypeScript 支持:Bun vs Node.js
在 2026 年的 Node.js v24 版本中,类型剥离(Type Stripping)已经变成了默认行为。但如果你追求极致的开发体验,Bun 依然有它的护城河。
| 能力 | Bun v1.4 |
Node.js v24+ |
|---|---|---|
运行 .ts 文件 |
✅ bun app.ts |
✅ node app.ts |
JSX 支持 |
✅ 内置 | ❌ 暂不支持 |
Path aliases (@app/*) |
✅ 支持 (tsconfig.json) |
❌ 忽略 |
Enums, namespaces |
✅ 支持 | ⚠️ 需加实验性参数 |
| 启动速度 | ~5.1ms (Linux) |
~19ms |
| 内置打包器 | ✅ bun build |
❌ 无 |
提醒一下: Bun 并不负责静态类型检查。虽然它能直接跑 .ts 文件,但如果你在 CI 环境里需要确保类型完全正确,最后一步还是得老老实实跑个 tsc --noEmit。
三、实测性能:性能跃迁到底有多猛?
如果说 v1.3 到 v1.4 的升级是"小修小补",那 Zig 到 Rust 的迁移就是"质变"。
通过对 Bun v1.4 与 Node.js 的对比,我们可以看到 Bun 在启动速度和吞吐量上的统治力。
| 指标 | Bun v1.4 |
Node.js v26 |
|---|---|---|
冷启动速度 (Linux) |
~5.1ms | ~19ms |
| HTTP 吞吐量 | 290k req/s | 71k req/s |
关于安装速度的"降维打击":
在测试 T3 Stack (Next.js) 项目时,Bun 的安装速度让 npm 显得非常"笨重":
Bash
# 依赖安装对比
# 场景:全新安装
npm install # ~38s
pnpm install # ~15s
bun install # 7s
# 场景:有缓存的安装
npm install # ~18s
pnpm install # ~5.5s
bun install # 2.5s
四、总结:2026 年该不该把项目迁到 Bun?
看完这么多更新,我个人的建议是:尽可能拥抱,但要分场景。
你可以毫不犹豫地在这些场景使用 Bun:
-
本地开发与 CLI 工具 :那启动速度和
TypeScript的原生支持真的用过就回不去了。 -
CI/CD 流水线 :
Bun install能为你省下大量等待时间,直接通过bun install --frozen-lockfile就能飞速跑完流程。 -
全栈 TS 项目 :如果你不想在
package.json里塞满各种dotenv、jsonc、tar等碎片包,Bun是目前的最佳选择。
但也请留意以下几点:
-
实验性特性 :比如
HTTP/3在Bun.serve()中的支持目前还属于实验性质,生产环境建议先观望。 -
生态兼容性 :虽然
Node.js兼容性大幅提升,但一些依赖原生N-API的复杂模块,可能还是需要你手动验证一下。
总之,Bun 的目标不是成为 Node.js 的"又一个"运行时,而是要把整个 node_modules 缩减到最小。从这个角度看,它赢得很彻底。
参考资料:
如果文章对您有所帮助, 请不吝点击关注一下我的微信公众号:FSA全栈行动, 这将是对我最大的激励. 公众号不仅有Android技术, 还有iOS, Python等文章, 可能有你想要了解的技能知识点哦~