17611538698
webmaster@21cto.com

11天完成78万行代码迁移!Bun 全面从 Zig 转 Rust,AI 驱动史诗级重构落地

编程语言 0 17 1小时前
图片
2026年7月8日,知名高性能前端全栈工具链 Bun 官宣史诗级升级。
官方指出共用了 11天,将项目全部 1448 个 Zig 文件、超78万行代码尽数迁移至 Rust,整体测试套件实现 100% 通过率。全新 v1.4.0 版本现已登陆 canary 通道,这标志着以极速性能出圈的 Bun 正式告别 Zig,全面迈入 Rust 时代。

这次迁移亦绝非简单的语言替换,而是 Bun 团队为解决长期稳定性顽疾、适配 AI 工具生态做出的战略性工程升级。

更重磅的幕后信息被官方披露:Bun 早已在2025年12月就被 Anthropic 收购,本次大规模重构,核心目的之一就是适配 Claude Code 内部 AI 开发工具的底层运行需求。收购消息一经发布,迅速登顶 Hacker News,斩获219高赞,引发全网开发者围绕「Zig vs Rust」以及「AI 大规模重构边界」展开激烈辩论。

从小众黑马到全民工具:Bun 的 Zig 崛起之路


Bun 诞生于2021年4月,创始人 Jarred Sumner 最初只是将 esbuild 的 Go 代码逐行移植为 Zig。选择 Zig,核心是看中它极简的语法文档、零开销抽象与极致的底层操控能力。

仅凭一己之力,Jarred 在狭小的公寓内快速搭建起一站式前端全栈工具全家桶:集成 JS/TS/CSS 转译打包、npm 兼容包管理器、Jest 风格测试运行器、完整 Node.js 模块解析、HTTP/WebSocket 客户端,以及数十项 Node.js API 兼容能力。

极致的集成度与速度优势,让 Bun 迅速席卷前端生态。如今其 CLI 月下载量突破 2200 万,Vercel、Railway、DigitalOcean 等主流云平台原生适配,Claude Code、OpenCode 等 AI 开发工具均将其作为默认核心运行时。

Zig 成就了 Bun 的快速崛起,但手动内存管理的极致灵活,也为大型项目埋下了无法根治的稳定性隐患。

53万行代码的失控危机:Zig 终究扛不住大规模工程


随着项目的不断迭代,Bun 累计沉淀超 53 万行 Zig 代码,大量隐蔽的内存安全 bug 集中爆发,成为迭代最大瓶颈。

在 v1.3.14 版本中,团队修复的典型高危问题遍布核心模块:

node:zlib 异步写入释放后野指针崩溃、node:http2 重入回调引发哈希表内存重复释放、UDPSocket 缓冲区分离异常、Buffer 读写越界、crypto.scrypt 内存泄漏、CSS 解析器双重释放等顽固性问题。

这类 bug 的根源高度统一:Zig 无原生构造/析构函数,所有内存生命周期,完全依赖开发者手动通过 defer/errdefer 管控,同时还要适配 JavaScript 垃圾回收机制。即便团队叠加 ASAN 内存检测、模糊测试、7×24小时泄漏监控等严苛手段,也只能被动修 bug、无法从根源杜绝隐患。

无休止的补丁式修复难以支撑长期迭代,团队最终下定决心:放弃修补,通过整体语言迁移彻底根治内存安全问题。

为什么最终选 Rust?从“手动控内存”到“编译级安全”


团队对比 Go、C++ 等语言后,最终锁定 Rust,核心原因只有一个:从根源消灭内存安全 bug

Zig 依赖人工手写 defer 回收资源,极度考验开发者细心;C++ 依靠析构函数与代码规范,依旧无法规避人为疏漏。而 Rust 凭借借用检查器 + Drop 特征,在编译阶段自动精准管理资源生命周期,确保内存有且仅有释放一次,将大量内存错误直接拦截在编译阶段。

这一点对 Bun 这类「手动内存 + JS 垃圾回收」双模式运行的 runtime 至关重要。

本次迁移采用纯机械移植方案:不改动原有架构、业务逻辑与性能特性,最大程度降低用户使用成本,仅将原有 Zig 代码完整转换为 100 个 Rust 子仓库(crate),全程攻克 16000 余个编译错误与循环依赖难题。

11天工程奇迹:AI 全程主导,成本16.5万美元


本次“史诗级”重写,并非人力攻坚,而是一场AI 驱动的大规模工程重构实验:仅一名工程师,借助 Anthropic 预发布版 Claude Fable 5 全程主导完成。

整个项目却消耗了海量 AI 算力:59 亿输入 Token、6.9 亿输出 Token、720 亿缓存读取,折合 API 成本约 16.5 万美元。团队设计了多 AI 实例并行协作流程:一个模型负责代码生成、一个对抗性审查纠错、一个专项迭代修复,形成全自动闭环开发。

验证环节极其严苛,覆盖全场景测试:烟雾测试、随机分片测试、跨 Linux/macOS/Windows 全量 CI 校验,以及基于 cgroups 的资源隔离压力测试。最终所有平台测试100%通过,同时产出 PORTING.md、LIFETIMES.tsv 等完整迁移文档,方便后续开源贡献者迭代。

目前新版本仍然保留约 4%(1.3 万处)unsafe 代码,团队将在后续版本持续优化,迭代为标准、规范的 Rust 写法。

全方位质变:内存、体积、性能、稳定性全面升级


完成 Zig 转 Rust 重构后,Bun 迎来全方位体验升级,各项核心指标显著优化:

内存占用断崖式下降:原 Zig 版本单次构建泄漏约3MB,2000次构建后内存占用高达6745MB;Rust 版本仅需 609MB,内存利用率大幅提升,且可通过 LeakSanitizer 完整追踪原生内存分配。

安装包体积缩减20%:通过代码折叠、ICU 数据清理、zstd 延迟解压等优化,Linux 版由 88MB 降至 70MB,Windows 版由 94MB 降至 76MB。

性能稳步提升2%–5%(Linux Xeon 铂金平台):HTTP 服务吞吐量从 169.6k req/s 升至 177.7k(+4.8%);Next.js 构建速度从13.62s 压缩至13.03s(+4.5%);Vite 构建、TS 编译等常规任务均有提速,Claude Code 启动速度优化10%。

稳定性彻底革新:新版一次性修复旧版本 128 个顽固 bug,彻底解决高频崩溃问题。百万级测试用例全覆盖,仅少量语义差异已全部修复,兼容性拉满。

社区激烈辩论:里程碑工程还是 AI 营销?


事件在 Hacker News 技术社区引发两极之热议。支持者认为,这是AI 大规模重构开源项目的里程碑,证明 Rust 强类型安全体系,是大型基础设施项目长期维护的最优解。

质疑声音同样尖锐:大规模 LLM 生成代码存在「vibe coding」隐患,可维护性存疑;不少开发者认为这是 Anthropic 借 Bun 刷案例的营销行为;

有 Zig 忠实粉丝提出,同等人力投入下,Zig 优化也能达到相近效果,根本无需彻底更换语言。此举是因为与Anthropic的路线冲突,因为Zig拒绝使用LLM贡献。

深度技术讨论最终达成部分共识:Zig 胜在极致简洁与底层可控,适合小型高性能模块;而 Rust 的编译期安全、适配 AI 迭代的特性,更适合 Bun 这类复杂、长期迭代的基础设施级项目。

行业启示:AI 重构开源开发范式


Bun 本次 11 天史诗迁移,为整个开源行业带来全新启示:AI 已具备「翻译-审查-修复-测试」全链路工程能力,能将数十人月的工作量压缩至十余天完成。同时也印证:强类型、高安全的现代语言,正在 AI 时代重新定义工程效率

对开发者而言,这次升级意味着 Bun 彻底告别内存 bug 频发的困境,稳定性、性能、可维护性全面进阶;对开源生态而言,它提供了一套「AI 机械迁移 + 全量严格测试」的成熟重构范式。

结语:未来展望


v1.4.0 只是 Bun Rust 时代的起点。官方后续将持续清理 unsafe 代码、完善标准 Rust 写法、升级模糊测试体系、压缩二进制体积,依托 Miri、LeakSanitizer 持续筑牢底层稳定性。

从 Zig 极致性能,到 Rust 极致稳定,Bun 的转型清晰印证了一个趋势:AI 时代的工具链竞争,短期拼速度,长期拼安全、拼可维护、拼可持续迭代。这场由 AI 主导的史诗级重构,也正式拉开了前端底层工具链升级的全新序幕。

体验新版的Bun可执行命令:

bun upgrade --canary

作者:场长

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信