Bun 从 Zig 迁移到 Rust:架构大重构背后的故事与影响分析

📅 2026-05-05 📖 阅读: 8 分钟 🏷️ Bun, Zig, Rust, JavaScript Runtime, Anthropic

📑 目录

2026 年 5 月 5 日,Bun 项目提交了一个历史性 commit——Bun 开始正式从 Zig 迁移到 Rust。 这条消息在 Hacker News 一小时内冲到 80+ 点,配合同天 "I am worried about Bun" 的 400+ 点讨论, 整个 JS 社区炸开了锅。

🔥 发生了什么

Bun 的 GitHub 仓库出现了 commit 46d3bc29,标题为 "add Phase-A porting guide"。 这是 Bun 项目历史上首次公开承认并开始执行从 Zig 到 Rust 的代码迁移

Bun 最初于 2022 年由 Jarred Sumner 创建,以 Zig 作为主力系统编程语言——这在当时是一个大胆的决策, 因为 Zig 虽然性能出众、编译速度快,但生态相对年轻。经过 4 年发展,Bun 已成为月下载量超 1.5 亿的 JavaScript 全家桶(运行时 + 打包器 + 测试框架 + 包管理器)。

一句话总结:Bun 的底层语言正在从 Zig 迁移到 Rust,Phase A 已正式启动。 这不是"考虑"或者"讨论",而是已经有代码提交了。

🤔 为什么从 Zig 换到 Rust

从社区讨论和 commit 内容来看,有几个核心原因:

1. 生态成熟度

Rust 拥有业界最成熟的包管理器 Cargo、最完善的 crate 生态(超 15 万+ 包)、 以及最强大的借用检查器。Zig 虽然编译模型更简单,但在库支持、工具链成熟度方面差距明显。 当 Bun 需要对接越来越多的系统库(加密、HTTP、压缩、WebSocket 等)时, Rust 生态的成熟度优势就凸显出来了。

2. 团队招聘

Rust 开发者数量远多于 Zig。在 Anthropic 收购 Bun 后,团队需要快速扩张。 Rust 在全球有约 300 万+ 活跃开发者,而 Zig 的开发者基数小得多。 对于需要快速招聘、维持项目长期维护的项目来说,Rust 是更实际的选择。

3. 安全性与并发

Rust 的内存安全保证和并发模型经过大规模生产验证(Firefox、Linux 内核、AWS、Cloudflare)。 Bun 作为运行时代理着大量用户代码的执行,内存安全至关重要。 迁移到 Rust 可以减少未定义行为导致的 bug,提高整体稳定性。

4. 与 Claude Code 基础设施对齐

Anthropic 的 Claude Code 以 Bun 为基础打包发布。Anthropic 自身大量使用 Rust (包括他们的推理基础设施和安全团队)。让 Bun 的底层语言与母公司技术栈对齐, 可以降低维护成本,实现更深入的工具链集成。

对比维度 Zig Rust
编译速度 ✅ 极快 ⚠️ 较慢
包生态 ⚠️ 较小 ✅ 非常成熟 (15 万+ crates)
内存安全 ⚠️ 手动管理 ✅ 编译期保证
开发者数量 ⚠️ ~数万 ✅ ~300 万+
生产验证 ⚠️ 较少大规模部署 ✅ 大量验证
FFI 互操作 ✅ 优秀 ⚠️ 较复杂

🛠️ Phase A 都做了什么

根据 commit 信息,Phase A 是迁移的第一步,主要聚焦在:

  • 构建系统重构:引入 Cargo 构建流程,与现有的 Zig 构建系统共存
  • 核心数据结构移植:从 Zig 的 std.ArrayList / std.HashMap 过渡到 Rust 的 Vec / HashMap
  • FFI 桥梁:在过渡期间,Rust 和 Zig 代码需要能互相调用
  • 测试基础设施:建立 Rust 侧的测试框架,逐步迁移 Bun 的测试套件

这不是一次"大爆炸式重写"(big bang rewrite),而是分阶段、渐进式的迁移。 Phase A 主要打地基,后续阶段会逐步将核心模块从 Zig 迁移到 Rust。 整个过程预计需要数月到一年。

🎯 对 Bun 用户有什么影响

短期内:完全不影响。 Bun 会保持正常发布节奏,API 不发生破坏性变更。 迁移是透明的,用户无需修改任何代码。

长期来看可能带来的好处:

  • 更少的底层 bug:Rust 的内存安全保证可以减少偶发的 segfault 和未定义行为
  • 更丰富的原生模块:Rust 生态中的库可以直接引入,无需用 Zig 重新实现
  • 更快的功能迭代:更多的贡献者和更好的工具链支持
  • 更好的 WASM 支持:Rust 在 WebAssembly 生态中有绝对优势

🏢 Anthropic 收购后的 Bun 走向

2025 年 12 月,Anthropic 收购了 Bun。当时很多人既兴奋又担心。 几个月过去后,社区开始有不同声音。

开发者 wwj.dev 在长文 "I am worried about Bun" 中表达了担忧: Anthropic 收购后 Claude Code 的体验在下滑,他担心 Bun 也会走上同样的"企业化衰退"之路。 这篇文章在 HN 上获得了 410 点、283 条评论的激烈讨论。

不过从另一个角度看,从 Zig 换到 Rust 恰恰说明 Bun 团队仍在积极投入。 这种级别的架构迁移需要大量人力和时间,不是一个"被晾着"的项目会做的事。 Bun 团队也明确表示 Bun 会保持开源和 MIT 许可不变。

💡 技术启示与趋势判断

Zig 的定位问题

Bun 的迁移对 Zig 社区是一记重击。Zig 一直想在系统编程领域站稳脚跟, 但失去 Bun 这个最大、最知名的"代言项目",对 Zig 的生态信心是一个打击。 Zig 依然在编译速度、简洁性方面有优势,但"生产环境首选语言"这个叙事需要重新找到落脚点。

Rust 的统治力再强化

从浏览器引擎 (Servo/Firefox) 到操作系统内核 (Linux),从基础设施 (AWS/Cloudflare) 到 开发工具 (Bun/Deno 的部分模块),Rust 正在成为基建基础设施的"默认选项"。 Bun 的迁移再次印证了这一趋势。

渐进式迁移是重写的最佳策略

值得学习的是,Bun 没有选择"重写一切然后一次性发布"的疯狂策略。 Phase-by-phase、新旧共存、逐步替换——这才是大型项目迁移的正确打开方式。

对 JavaScript 生态的影响

Bun 是 Node.js 最强的竞争对手。这次重写可能会在短期内减缓 Bun 的功能迭代速度, 但长期来看,一个更稳固的底层基础对 JS 生态是好事。 对手越强,Node.js 也能越快。


参考来源: Bun commit 46d3bc2 · HN Bun porting 讨论 · "I am worried about Bun" · HN "I am worried about Bun" 讨论