近日,技术社区被一则重磅消息引爆:JavaScript 运行时 Bun 的底层代码库正式从 Zig 语言迁移至 Rust。更令人瞩目的是,这场涉及近百万行代码的浩大工程,主要由 AI(Claude)主导完成,耗时仅约 6 天,并已成功合并至主分支。这无疑为“AI 驱动大型软件工程”树立了新的里程碑。
一、迁移时间线(2026 年 5 月)
让我们回顾一下这次 Bun 语言迁移的关键节点:
5 月 4 日,Bun 团队公开发布了从 Zig 到 Rust 的迁移指南,为后续的自动化转换奠定了基础。
5 月 8 日,包含 6755 次提交的巨型 Pull Request #30412 被合并入主库,标志着代码转换的主体工作完成。
5 月 11 日,Bun 创始人在社交媒体上确认,v1.3.14 将是最后一个基于 Zig 构建的版本。
5 月 14 日,官方正式宣布:基于 Rust 的 Bun 已在全平台通过测试,不仅修复了原有的内存泄漏问题,最终产出的可执行文件体积还缩减了 3–8MB。
二、为何从 Zig 转向 Rust
那么,驱动这次底层“换心”的核心原因是什么?官方与社区的解读指向了几个关键因素。
首要原因是内存安全问题。Zig 提供的手动内存管理虽然灵活,但长期存在的内存泄漏问题难以调试,甚至影响了其母公司 Anthropic 内部 AI 工具 Claude Code 的开发体验。
其次是生命周期管理的缺失。Zig 缺乏 Rust 那样强制性的所有权与生命周期系统,在项目规模扩大、复杂度提升时,类似 C 语言的代码风格会使得维护成本急剧增加。
再者是对 AI 辅助编程的友好度。Rust 强大的类型系统和严格的安全规则,让 AI 更容易生成正确且安全的代码;而 Zig 的灵活性对 AI 而言容错率较低,反而增加了生成可靠代码的难度。
最后是生态与战略协同的考量。Bun 已被 Claude 的母公司 Anthropic 收购,而 Rust 正是 Anthropic 内部的主力开发语言。将 Bun 迁移至 Rust,更有利于其长期的技术栈统一与内部协同维护。
三、迁移规模与最终成效
本次 Bun 代码迁移的工程规模十分惊人:
代码量:约 96 万行 Zig 代码被等价转换为 Rust 代码。
耗时:在 Claude AI 的辅助下,核心迁移工作仅用了大约 6 天时间。
测试:在 Linux x64 平台上的测试通过率高达 **99.8%**,并最终实现了全平台通过。
成果:性能保持稳定,部分场景下甚至有所提升;生成的二进制文件体积减小了 3–8MB。最关键的是,整个系统架构完全保持原样,仅进行了编程语言的替换,对上层的 API 接口和所有功能均无任何影响。
四、对开发者意味着什么
这场底层的巨变,对不同角色的开发者意味着什么呢?
对于普通前端开发者而言,几乎可以做到无感切换。bun 命令行工具、所有 API 以及整个 npm 生态兼容性都保持不变。
对于库作者和核心贡献者来说,未来的底层开发与贡献将基于 Rust 语言进行,无需再关注 Zig。
放眼更大的Node.js 替代方案格局,这一变化影响深远。Bun 现在成为了一个根正苗红的 Rust 系高性能 JavaScript 运行时,与同样基于 Rust 的 Deno 形成了“双雄并立”的局面。这对于传统的 Node.js 运行时而言,面临的竞争压力无疑进一步加剧了。
