Bun 抛弃 Zig 拥抱 Rust:当“明星项目”跑得比“底层语言”还快,技术债就爆发了

63 阅读5分钟

2026 年 5 月,JavaScript 运行时 Bun 完成了一次震惊业界的迁移——在 11 天内借助 AI 工具 Claude Code,将超过 50 万行 Zig 代码重写为 Rust。表面看是一次内存安全引发的技术调整,但深层原因远比这复杂:Zig 作为一门还在剧烈演进中的语言,已经追不上 Bun 作为商业项目狂飙猛进的发展速度了。


Zig 的“慢”与 Bun 的“快”,差距越拉越大

Bun 诞生于 2021 年,彼时 Zig 还是 0.9.x 版本。Jarred Sumner 选择 Zig,是因为它“没有隐式内存分配”“编译速度快”“能直接嵌入 C/C++ 代码”——这些特性让一个追求极致性能的 JS 运行时成为可能。

但问题在于,Bun 的发展速度远超 Zig 语言的成熟速度

维度BunZig
迭代节奏每周发版,紧急修复按天计每年 1-2 个大版本,0.14→0.15 跨度超 18 个月
语言特性需要稳定 ABI、完善异步 I/O0.16 仍在改 IO 接口,基础库未定稿
团队规模被 Anthropic 收购后全职工程师 40+核心贡献者不足 10 人,Andrew Kelley 一人定乾坤
生态诉求需大量第三方库、成熟的包管理器标准库尚不完整,社区库匮乏

Bun 火了之后,用户对它的期待是“Node.js 替代品”级别的稳定性和功能丰富度,但 Bun 底层依赖的 Zig 连语言本身都还没冻结特性。于是 Bun 团队不得不做大量“超前”的工程:

  • 自己维护 Zig 编译器分支,为了提速 4 倍修改了编译器内部逻辑,但因违背 Zig 的“no-AI policy”无法合并回主线;
  • 大量使用 @cImport 和 @ptrCast 等底层 hack,绕过 Zig 的类型系统去操作内存;
  • 对 JavaScriptCore GC 与 Zig 手动内存管理做“手工胶水” ,每行分配都要逐行审查。

这些做法被 Zig 社区资深成员 Andrew Kelley(AK)多次公开批评,直言 Bun 团队的 Zig 代码“写得不像 Zig,像带着 Zig 语法的 C 代码”。但这背后不是技术水平问题,而是 Bun 的需求已经跑到了 Zig 设计哲学的前面,两者开始互相拉扯


0.16 的 IO 特性还在改,Bun 等不了

2026 年初,Zig 0.16 版本发布,带来了备受期待的 IO 特性更新——但这恰恰成了压垮 Bun 对 Zig 信心的关键事件。

Bun 是一个 I/O 密集型的运行时,对异步 I/O、事件循环、文件系统操作有极高要求。但 Zig 的 std.io 在 0.16 中仍然在“重设计”阶段,API 不够稳定,性能调优空间有限。而 Bun 的竞争对手 Deno(基于 Rust)和 Node.js(基于 C++)早已有了成熟、稳定的底层 I/O 实现。

Bun 的开发者不得不在 Zig 的 std 库之上再封装一层自己的 I/O 抽象,这增加了维护成本,也引入了新的 bug。当你在一个还在“施工中”的地基上盖摩天大楼时,每一层都可能是技术债。


被 AI 抛弃:Zig 的“反 AI”立场成了致命伤

Bun 被 Anthropic 收购后,AI 原生开发成为核心生产力。团队大量使用 Claude Code 辅助编程,开发效率数倍于纯手工写代码。

但 Zig 创始人 Andrew Kelley 明确将 AI 生成的代码称为“垃圾”,并规定 Zig 项目不接受任何由大语言模型生成或润色的贡献。这直接导致:

  • Bun 团队对 Zig 编译器做的优化(包括修复 bug、加速编译)无法回馈上游,只能维护私有分支;
  • Bun 想引入新特性时,无法借助 AI 快速探索 Zig 的写法,必须靠手工查阅稀缺的 Zig 文档和社区示例;
  • Zig 社区本就不大,AI 无法提供足够多的“语料”辅助编程,进一步拖慢了 Bun 的开发节奏。

反观 Rust:互联网上的 Rust 代码数量是 Zig 的百倍千倍,大模型对 Rust 的理解程度远超 Zig。当团队可以靠 AI 在 11 天内翻译 50 万行代码时,选择一门 AI“擅长”的语言,就是选择更高的开发效率。


结论:不是 Zig 不好,是它还没长大,Bun 已经等不了了

Bun 抛弃 Zig,本质上是一场 “商业速度 vs 语言成熟度”的错配。Zig 是一门充满理想主义的语言——手动内存管理、无隐式分配、编译器即工具链——但它的演进节奏是“学术级”的审慎,而 Bun 的生存节奏是“创业级”的狂奔。

当 Bun 的用户抱怨内存泄漏、崩溃频发,当母公司 Anthropic 的 Claude Code 因为 Bun 的底层问题被客户投诉,当 AI 无法高效帮团队写 Zig 代码时——技术选型的理性最终战胜了创始人的个人偏好

Zig 没有输给 Rust,它只是输给了时间。  如果 Zig 能在 2023 年就冻结 ABI、完善异步 I/O、建立更丰富的生态,也许 Bun 不会走。但现实是,一门语言的成熟以十年计,一个明星项目的爆发只需要两年——跑得太快的孩子,终究要换掉那双还没磨合好的鞋。