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
Bun 最初于 2022 年由 Jarred Sumner 创建,以 Zig 作为主力系统编程语言——这在当时是一个大胆的决策,
因为 Zig 虽然性能出众、编译速度快,但生态相对年轻。经过 4 年发展,Bun 已成为月下载量超 1.5 亿的
JavaScript 全家桶(运行时 + 打包器 + 测试框架 + 包管理器)。
从社区讨论和 commit 内容来看,有几个核心原因:
Rust 拥有业界最成熟的包管理器 Cargo、最完善的 crate 生态(超 15 万+ 包)、
以及最强大的借用检查器。Zig 虽然编译模型更简单,但在库支持、工具链成熟度方面差距明显。
当 Bun 需要对接越来越多的系统库(加密、HTTP、压缩、WebSocket 等)时,
Rust 生态的成熟度优势就凸显出来了。
Rust 开发者数量远多于 Zig。在 Anthropic 收购 Bun 后,团队需要快速扩张。
Rust 在全球有约 300 万+ 活跃开发者,而 Zig 的开发者基数小得多。
对于需要快速招聘、维持项目长期维护的项目来说,Rust 是更实际的选择。
Rust 的内存安全保证和并发模型经过大规模生产验证(Firefox、Linux 内核、AWS、Cloudflare)。
Bun 作为运行时代理着大量用户代码的执行,内存安全至关重要。
迁移到 Rust 可以减少未定义行为导致的 bug,提高整体稳定性。
Anthropic 的 Claude Code 以 Bun 为基础打包发布。Anthropic 自身大量使用 Rust
(包括他们的推理基础设施和安全团队)。让 Bun 的底层语言与母公司技术栈对齐,
可以降低维护成本,实现更深入的工具链集成。
根据 commit 信息,Phase A 是迁移的第一步,主要聚焦在:
这不是一次"大爆炸式重写"(big bang rewrite),而是分阶段、渐进式的迁移。
Phase A 主要打地基,后续阶段会逐步将核心模块从 Zig 迁移到 Rust。
整个过程预计需要数月到一年。
长期来看可能带来的好处:
2025 年 12 月,Anthropic 收购了 Bun。当时很多人既兴奋又担心。
几个月过去后,社区开始有不同声音。
开发者 wwj.dev 在长文 "I am worried about Bun" 中表达了担忧:
Anthropic 收购后 Claude Code 的体验在下滑,他担心 Bun 也会走上同样的"企业化衰退"之路。
这篇文章在 HN 上获得了 410 点、283 条评论的激烈讨论。
不过从另一个角度看,从 Zig 换到 Rust 恰恰说明 Bun 团队仍在积极投入。
这种级别的架构迁移需要大量人力和时间,不是一个"被晾着"的项目会做的事。
Bun 团队也明确表示 Bun 会保持开源和 MIT 许可不变。
Bun 的迁移对 Zig 社区是一记重击。Zig 一直想在系统编程领域站稳脚跟,
但失去 Bun 这个最大、最知名的"代言项目",对 Zig 的生态信心是一个打击。
Zig 依然在编译速度、简洁性方面有优势,但"生产环境首选语言"这个叙事需要重新找到落脚点。
从浏览器引擎 (Servo/Firefox) 到操作系统内核 (Linux),从基础设施 (AWS/Cloudflare) 到
开发工具 (Bun/Deno 的部分模块),Rust 正在成为基建基础设施的"默认选项"。
Bun 的迁移再次印证了这一趋势。
值得学习的是,Bun 没有选择"重写一切然后一次性发布"的疯狂策略。
Phase-by-phase、新旧共存、逐步替换——这才是大型项目迁移的正确打开方式。
Bun 是 Node.js 最强的竞争对手。这次重写可能会在短期内减缓 Bun 的功能迭代速度,
但长期来看,一个更稳固的底层基础对 JS 生态是好事。
对手越强,Node.js 也能越快。
参考来源:
Bun commit 46d3bc2 ·
HN Bun porting 讨论 ·
"I am worried about Bun" ·
HN "I am worried about Bun" 讨论
📑 目录
🔥 发生了什么
46d3bc29,标题为 "add Phase-A porting guide"。
这是 Bun 项目历史上首次公开承认并开始执行从 Zig 到 Rust 的代码迁移。
🤔 为什么从 Zig 换到 Rust
1. 生态成熟度
2. 团队招聘
3. 安全性与并发
4. 与 Claude Code 基础设施对齐
对比维度
Zig
Rust
编译速度
✅ 极快
⚠️ 较慢
包生态
⚠️ 较小
✅ 非常成熟 (15 万+ crates)
内存安全
⚠️ 手动管理
✅ 编译期保证
开发者数量
⚠️ ~数万
✅ ~300 万+
生产验证
⚠️ 较少大规模部署
✅ 大量验证
FFI 互操作
✅ 优秀
⚠️ 较复杂
🛠️ Phase A 都做了什么
std.ArrayList / std.HashMap 过渡到 Rust 的 Vec / HashMap🎯 对 Bun 用户有什么影响
🏢 Anthropic 收购后的 Bun 走向
💡 技术启示与趋势判断
Zig 的定位问题
Rust 的统治力再强化
渐进式迁移是重写的最佳策略
对 JavaScript 生态的影响