Bun 正在“去 Zig 化”?我对 Bun 1.4 全面迁移 Rust 的一些看法
aznlux
2026年05月17日 22:08

这两天刷 Bun 提交记录的时候,最让我意外的一件事,不是性能数据,而是那个已经合并进主分支的 Rust 重写 PR:#30412。

很多人可能还没意识到,这基本意味着:Bun v1.3.14 很可能会成为最后一个“主要 Zig 版本”。

其实我对这件事并不意外。

Bun 当年能一战成名,本质上就是因为 Zig 给了它极低层级的性能控制能力。无论是启动速度、IO、包管理,还是整体资源占用,Bun 都有一种“原生暴力美学”的感觉。

但用了很久之后,其实也能明显感觉到:

  • 内存问题偶发

  • 边缘 case 稳定性不够

  • 某些 crash 很难追踪

  • 大规模项目里调试成本偏高

这些问题并不是 Bun 做得不好,而是 Zig 生态本身还太年轻。

真正让我震惊的,反而是这次迁移的速度。

官方提到,借助 Claude 等 AI 工具,几天时间内完成了接近百万行代码迁移,测试通过率直接做到 99.8%。

说实话,这已经不是“AI 写代码”了。

而是:AI 开始参与大型系统级工程迁移。

这个信号其实比 Bun 用 Rust 更重要。


这次 Rust 化,实际发生了什么?

1. 体积反而更小了

很多人第一反应会觉得:

“Rust 编译出来不是很大吗?”

但目前 Canary 数据里,Rust 版 Bun 的二进制体积反而减少了大概 3-8MB。

这点挺有意思。

说明他们并不是“推翻重写”,而是保留原本架构的前提下做语言迁移。

这一点非常关键。

因为 Bun 真正厉害的,从来不是 Zig。

而是:

  • 自己的 Runtime 设计

  • 极端激进的 IO 模型

  • JS/TS 工具链整合方式

  • 对 Node 生态兼容的取舍

这些东西都还在。

只是底层从 Zig 换成了 Rust。


2. 没有走 Tokio 那套“大而全”路线

我专门看了一下讨论。

Bun 并没有变成一个“标准 Rust Web Server”。

这一点我其实挺认可。

他们保留了原来的执行模型,也没有完全依赖 Tokio 那套生态。

这意味着:Bun 还是那个 Bun。

只是现在:

  • 工具链成熟度更高

  • 内存安全性更强

  • 调试体验更完整

  • 长期维护成本更低

尤其是大型项目里,Rust 的 borrow checker 虽然烦,但确实能提前挡掉很多线上问题。

这个东西,只有真正做过高并发服务的人才会有感触。


我最关心的,其实是生产环境

很多人讨论的是“语言之争”。

但我真正关心的是:线上到底稳不稳。

因为现在很多 Next.js 15/16 项目,其实已经开始:

  • Bun install

  • Bun runtime

  • Bun build

  • Bun serve

全链路跑生产了。

尤其是 React Server Components、Streaming、Edge Runtime 这些东西越来越重之后,Node 的一些历史包袱其实已经很明显。

而 Bun 一直有种:“我就是来重新定义 JS Runtime 的” 那种气质。

如果 Rust 版能把之前偶发的稳定性问题解决掉,那对生产环境价值会非常大。

特别是:

  • 高频 API

  • SSR

  • 实时推送

  • WebSocket

  • 高 IO 服务

这种场景。


Next.js + Bun,我自己的建议

不要一上来全量切

我现在更倾向于:

先 Canary,后生产。

直接:

代码块
Shell
自动换行
复制代码
bun upgrade --canary
复制成功

然后优先观察:

  • bun install

  • bun build

  • bun test

  • bun serve

这几个高频路径。

尤其 monorepo 项目,一定要看:

  • workspace

  • lockfile

  • native package

  • postinstall

这些地方有没有异常。


Next.js 15/16 项目,重点观察 Turbopack

现在 Next.js 自己也在疯狂 Rust 化。

所以我反而觉得:Bun 改 Rust,和 Next.js 的方向是高度一致的。

未来很可能会出现一种情况:

  • Next.js 编译层 Rust

  • Bun Runtime Rust

  • Turbopack Rust

  • SWC Rust

整个 JS 全栈底层开始全面 Rust 化。

这个趋势其实已经很明显了。


我最近会重点观察的栈

我自己会先测这些:

  • Next.js 16

  • React 19

  • Bun Canary

  • Elysia

  • Drizzle ORM

  • PostgreSQL

尤其是:

  • 高频查询

  • SSR Streaming

  • Edge API

  • WebSocket

这些对 Runtime 稳定性要求很高的部分。

如果这里能稳定下来,那 Bun 的生产可信度会提升非常大。


我为什么其实挺支持这次迁移

我一直觉得:极致性能 和 长期稳定性,最终必须同时存在。

过去 Bun 更偏向前者。

现在 Rust 化之后,我反而觉得它开始真正进入“成熟 Runtime”阶段了。

因为很多时候:

最快的系统不一定赢。

但:最快且稳定的系统,基本都会赢。

而 Rust 恰好就是那个:

能把“性能”和“工程可靠性”同时拉高的语言。


最后一点判断

我现在越来越觉得:

Bun 的真正目标,可能已经不是“替代 Node”。

而是:重新定义下一代 JavaScript Runtime。

如果 Rust 版 Bun 后续稳定下来,我其实挺看好它未来 2-3 年的生态爆发。

尤其是对全栈开发者来说。

因为大家终于开始意识到:

运行时本身,才是性能的真正天花板。

[鸣潮·共鸣与群星_害羞]