Bun内存泄漏拖垮Claude Code后如何用Rust重写修复
2026年5月11日,Bun创始人Jarred Sumner在社交平台X上发布的一条简短推文,在开发者社区引发了巨大震动,几乎宣告了Zig语言版本Bun的终结。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
推文内容直截了当:“Bun v1.3.14将于明日发布。如果我们合并Rust重写版本,这将是Zig的最后一个版本。” 这意味着,Bun这个曾经因选择Zig语言而独树一帜的JavaScript运行时,可能即将彻底告别其诞生之初的技术栈。

寥寥数语,标志着一个技术时代的转折。四年前,Bun凭借Zig语言在性能上的优势脱颖而出,成为Node.js和Deno之外的一个亮眼选择。四年后,其创始人亲自为这段旅程画上了潜在的句号。
这场从Zig到Rust的代码迁移,其速度之快超乎所有人想象。整个过程仅耗时约六天,涉及高达96万行代码的转换,并且在Linux x64 glibc环境下通过了现有测试套件99.8%的用例。更具戏剧性的是,就在重写开始前一周,Jarred本人在Hacker News上还表示这些代码“根本还跑不起来”,并认为“最后被全部扔掉的概率非常高”。短短数日,代码的命运便从“大概率废弃”逆转为“即将取代生产版本”。

“整个讨论有点反应过度了。302条评论,全都围绕一堆根本还跑不起来的代码。我们并没有决定一定要重写。而且这些代码最后被全部扔掉的概率其实非常高。
我只是很好奇:一个真正可运行的版本到底会是什么样、用起来感觉如何、性能如何,以及让它通过Bun的测试套件、并真正变得可维护,到底会有多难。我希望未来能把一个可行的Rust版本和Zig版本真正并排放在一起比较。”
这次重大转向的催化剂,很可能源于Bun被AI巨头Anthropic收购之后。Bun被深度整合到Claude Code的开发工具链中。然而,过去几个月,开发者社区对Claude Code最大的抱怨之一,正是其性能与稳定性问题,例如内存占用飙升、CLI响应卡顿等。事后分析表明,许多问题的根源最终都指向了Bun运行时自身的内存泄漏与稳定性缺陷。
于是,一个颇具讽刺意味的循环形成了:Claude Code因Bun的内存泄漏问题而体验受损;随后,Anthropic利用自家的Claude AI来重写Bun;最终,这个由AI重写后的Bun,又将回头支撑Claude Code的运行。甚至有开发者半开玩笑地表达担忧:“Bun已经嵌入到Claude Code中。Claude Code体验不佳。所以我开始担心Bun本身可能也存在根本性问题。”
3天编码2天测试,AI真能解决内存泄漏?
时间回到2026年5月初,Bun的GitHub仓库中悄然出现了一个名为“claude/phase-a-port”的新分支。该分支内包含了数十万行由AI生成的Rust代码,与原始的Zig实现并列存放。
同时出现的,还有一份极其详尽的PORTING.md迁移指南文档。

这份长达576行的Zig到Rust迁移手册,将整个过程拆分为Phase A和Phase B两个阶段:Phase A要求Claude AI近乎机械地逐文件保留Zig的原始逻辑,即使生成的Rust代码暂时无法编译也在所不惜;Phase B则逐个解决crate的编译、构建和运行问题。文档细致到了令人惊讶的程度,规定了文件命名规则、crate引用方式,明确禁止使用tokio、rayon等特定异步库,禁止使用async fn,要求所有unsafe代码块必须附上安全注释,甚至指示AI在遇到不确定的逻辑时留下TODO标记而非自行猜测。
本质上,这并非传统意义上的“人工重写”,更像是一次利用AI对整个Bun代码库进行的大规模、高保真“语义投影”或“代码转译”。
随后的项目进展速度,彻底脱离了传统软件工程的范畴。
5月7日,Jarred Sumner发推称,这次Rust迁移已涉及约4000次提交、96万行代码,当时仅剩下3个编译错误。

当时的Rust版本已能显示帮助菜单(尽管版本号显示错误,部分格式化文本也未正确替换),`bun run`命令和`package.json`脚本已能够执行。这意味着JSON解析器、AST、日志系统、模块解析器、文件系统遍历、缓存等核心基础能力均已成功迁移。Jarred还补充了一句:“JavaScript runtime runs JavaScript。” 这表明,这个Rust版本已不再是静态的代码翻译,而是真正具备了执行JavaScript代码的能力。
不过,他当时也明确表示:当前状态仍只是“勉强能动”,远未达到交付标准。后续需要进行大量代码清理,并让Claude AI继续攻克测试套件。

有网友在这条推文下惊呼:“Claude难道只用了三天就把Zig版Bun重写成Rust了吗?”Jarred的回复是:“按代码量来看,这个说法准确。”
两天后,进度再次实现飞跃。5月9日,Jarred宣布,Rust重写版本已在Linux x64 glibc环境下通过了Bun既有测试套件的99.8%。

至此,这次重写已很难再被视为一次简单的技术实验。至少在Linux这个关键平台上,Rust版本几乎完整复现了Zig版本的所有行为。Jarred解释说,Rust版本“基本上还是同一个代码库”,但Rust编译器能帮助团队检查类型生命周期,也能在需要时使用析构函数;那些涉及内存安全的危险部分会以`unsafe`的形式明确标出,更显眼,也便于后续重构。
同一天,他开始透露更深层的动机:“我真的很厌倦为内存泄漏、崩溃和稳定性问题而担忧和花费大量时间进行修复。如果编程语言能提供更强大的工具来预防这些问题,那就太好了。”

但与此同时,他仍在X上向Rust社区请教底层优化问题:Bun原来的Zig代码大量使用“tagged pointer”技术来处理事件循环、进程退出回调、非阻塞文件I/O等接口;迁移到Rust后,如果直接使用trait对象或函数指针,可能会带来额外的性能开销。他仍在寻找一种既不影响性能、又符合Rust惯用法的实现方式。
也就是说,截至5月10日,Rust版本虽然已能运行且测试近乎通过,但其底层架构设计尚未完全稳定。
而就在这种状态下,5月11日,Jarred发出了那条引爆整个开发者社区的推文:“如果我们合并Rust重写版本,这将是Zig的最后一个版本。”
积重难返,Rust是“一键修复”方案?
要理解这次决绝的技术栈切换,需要回溯到2025年12月Anthropic对Bun的收购。官方说法是“加速Claude Code能力”,本质上是让Bun成为Claude Code背后的核心运行时、包管理器、打包工具和测试运行器。Anthropic将Bun定义为“AI驱动软件工程的重要基础设施”,认为它能帮助开发者以前所未有的速度构建和测试应用。
Anthropic Claude Code负责人Boris Cherney曾在Bun官网的视频中解释,Bun最大的优势之一是极快的启动速度,这对AI编程工具至关重要:
“我们当初在开发Claude Code时,评估了很多运行时方案,Bun几乎是毫无悬念的胜者。它的启动时间大概只有3毫秒,而Python要慢15倍左右。对于CLI工具来说,这意味着用户体验是‘丝滑响应’,还是‘明显卡顿’。”
表面上看,Bun的优势非常诱人。但实际使用中呢?内存泄漏问题严重,甚至影响到了Claude Code本身的稳定性。
Claude Code是以Bun可执行文件的形式发布的。安装Claude Code,实质上就是在运行Bun。两者是深度绑定的依赖关系。
2026年3月12日,一个编号#33453的Issue被提交到Claude Code仓库:

“Claude Code的主进程表现出严重的内存泄漏,RSS内存在约3小时的短会话中从约1.7GB增长到14GB以上。泄漏位于Bun运行时的WebKit Malloc分配器中,而非用户空间的JavaScript分配。”
另一份Issue#11377的记录更为夸张(后被标记为重复问题关闭):运行14小时后,Claude Code进程占用23GB虚拟内存,CPU使用率达143.8%,导致系统完全卡死。

Issue#33453的作者直接指出问题的根源在于Bun所使用的WebKit Malloc内存分配器。
与此同时,Bun自身的问题也在持续发酵。尽管Bun v1.1.13在2026年4月发布时,官方宣称通过更换内存分配器让内存占用下降了5%,但许多用户并不买账。
Reddit用户Xtergo曾在一篇帖子中集中吐槽Bun的内存泄漏问题。他写道:“任何新运行时都会有成熟度问题,这些问题最终会随着时间慢慢被修复。但我担心的是,Bun的路线图看起来更像是在不断叠加新功能,而不是优先解决稳定性和Bug修复问题。”
他还表示:“Bun现在已经变得非常复杂了。如果这些问题继续得不到解决,我怀疑它永远无法达到Node.js那种生产级成熟度。”
另一个被频繁提及的问题,是GitHub上大量长期未关闭的issue。波兰数字会员系统公司Rewardo的CTO Wojciech Maj曾做过一个对比:Node.js作为几乎“驱动整个互联网”的运行时,目前大约有1700个open issues;而更年轻、用户规模远小于Node.js的Bun,却已经积累了约4700个open issues。
Maj写道:“单纯数字不能说明全部问题,但这个差距依然很惊人。Node.js承担着全球级别的工作负载,却维持着更小的待处理问题列表;而仍处于早期阶段的Bun,却已经被问题淹没了。”
不止于内存:Bun与Zig社区的哲学分歧
内存泄漏并非唯一的问题。Bun团队与Zig社区之间,还存在着一道更深层的理念裂痕。
这次迁移之所以迅速引爆讨论,另一个关键原因是:Bun本身一直是Zig生态中最成功、也最具代表性的明星项目之一。过去几年,Bun凭借Zig带来的性能优势,与使用C++的Node.js、使用Rust的Deno形成了鲜明对比。在某种程度上,Bun一度成了Zig语言在现代基础设施领域的“活广告”。
但问题在于,Bun团队此前其实已经fork了Zig编译器。他们曾宣称,通过在macOS与Linux上引入LLVM并行代码生成,debug模式的编译速度提升了四倍。然而,这些优化始终无法合并回Zig官方仓库,其中一个关键原因,就是Zig社区极其严格的“禁止AI政策”——禁止使用AI生成issue、PR甚至评论。

Zig基金会成员Loris Cro曾公开表示,大量LLM贡献只会制造“幻觉PR”、“垃圾噪音”以及动辄上万行、根本无法维护的提交。而另一位Zig核心开发者则更直接地批评Bun fork中的一些实现“不适合上游合并”,例如并行语义分析可能导致非确定性行为,而Bun对LLVM后端的模块拆分,也被认为方向错误。
这种冲突,在Anthropic收购Bun后显得格外讽刺。因为Anthropic本身,恰恰是整个AI编程浪潮最激进的推动者之一;而Claude Code现在又深度依赖Bun运行时。结果,一边是Zig社区全面封禁AI生成代码,另一边却是Bun团队开始用Claude AI大规模将Zig代码迁移出Zig。从某种意义上说,这已经不仅仅是一次编程语言切换,更像是两种软件工程哲学的直接碰撞。
所以,当Jarred说“厌倦了修复内存泄漏”时,他心里可能还有一句话没说出来:在当前的生态和约束下,继续坚持Zig这条路,已经走不下去了。
这就是2026年5月重写前夜的现实:四年积累的96万行Zig代码,4700个未解决的问题,一个被内存泄漏坑到占用14GB的Claude Code,以及一个与AI世代格格不入的社区氛围。
Jarred的选择?让Claude AI在六天内用Rust重写一切。
“Anthropic没有强迫我”
重写完成了,但代码质量如何呢?
最大的争议来自t3.gg创始人Theo。5月12日,Theo在X上抛出了一组让Jarred不得不回应的对比数据:“uv包含35万行Rust代码,以及73个unsafe调用。Bun Rust移植版已经有68.1万行Rust代码,并且有超过13,000个unsafe调用。”

73 vs 13,000,相差接近180倍。Jarred几乎立刻回应:“今天已经下降了大约2000。我预计它会稳定在1万左右,因为Bun的大部分内容都是用C和C++编写的(需要通过FFI调用),这种情况不会改变。”

平心而论,这种对比确实不完全公平。uv是一个相对纯粹的Rust项目,而Bun需要与大量底层C/C++代码(如JavaScript引擎、系统调用等)打交道,文件系统、网络、JavaScript引擎集成这些都绕不开unsafe块。Jarred的解释在技术上有其道理。但开发者社区在意的不仅仅是数字。矛头很快指向了另一个维度:开发流程与质量控制。
网友Aashish Ranjan Singh在X上写道:“UV rust是由真正的开发人员编写的,每一行代码都经过了审查。Bun rust由AI Agents编写,由AI Agents审核,并由AI Agents批准和合并。完全在意料之中的结果 ”

另一位用户HSVSphere则更不客气:“uv不是靠‘感觉编码’的垃圾,而且开发它的人对Rust非常了解。但Bun就完全不同了,它简直是一场风格灾难。用Deno吧。”

还有人把矛头指向了收购方。开发者Anthony GG在X上直言:“我开始觉得Anthropic(收购了Bun)正在强迫他们用Rust重写,这样他们糟糕的工程团队就可以通过怂恿Claude来搞砸它。Zig虽然不错,但由于Zig每个月都会进行重大更改,训练数据总是过时。仅供参考。”

面对这种“被迫重写”的猜测,Jarred亲自下场否认:“没人逼我这么做。”

但“vibecoded disaster”(感觉编码的灾难)这个词已经精准地刺中了许多人的不安:六天、96万行、AI生成、AI测试,最后带着上万个unsafe调用直接合并到主分支?这背后的工程风险令人担忧。
不止于Bun:AI驱动的大规模代码重写时代来临
如果说Bun的这次六天重写只是一个孤例,那或许我们还能把它当成一个“财大气粗”的技术花边新闻。但事实是,类似的AI驱动极限重写正在多个领域同时发生。
Cloudflare曾在一周内借助AI重新实现了Next.js API的大部分能力。
Ladybird浏览器在两周内将自己的JavaScript引擎从C++迁移到了Rust。
Jarred自己也在5月3日发过一条推文:“这种自动化流水线,任何VC支持的开源项目或者有大量GitHub issues的公司都能搭建。更普遍地说,它可以用于自动修复用户报告的bug。Opus 4.7、4.6甚至4.5都能轻松做到。”

他甚至在更早的时候预言过:“我预计开源软件会走向完全相反的方向——未来甚至可能变成‘禁止人类贡献代码’。人类依然会负责讨论问题、决定优先级,但真正写代码、提交PR、回复和处理反馈、完成实现的工作,最终都会由LLM来完成。”

Bun的这次重写,正是这句话的第一次大规模公开实践。它证明了AI能够以人类无法企及的速度完成跨语言迁移——六天 vs 三周(Jarred当年手工移植esbuild的时间)。它也暴露了AI重写的典型问题:缺乏深度人类审查、unsafe代码泛滥、流程简化为“AI写、AI审、AI合”。
但无论如何,这扇门已经被彻底撞开了。以后当技术负责人说“我们要把代码库从X语言重写成Y语言”时,他可能不会再问“需要几个月”,而是会问“Claude需要几天”。
AI重写代码的速度已然上天,但由此产生的代码,其可靠性与可维护性,仍需时间在现实中落地检验。
参考链接:
https://x.com/jarredsumner
https://github.com/oven-sh/bun/commit/46d3bc29f270fa881dd5730ef1549e88407701a5
https://github.com/anthropics/claude-code/issues/21965
https://github.com/anthropics/claude-code/issues/11377#issue-3609559118
https://www.devclass.com/software/2026/05/11/anthrophics-bun-team-trials-port-from-zig-to-rust/5237835
https://thenewstack.io/bun-developers-complaints-anthropic/
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
王兴兴变形金刚设计理念与创新解析
5月12日,宇树科技发布了一则足以改写行业认知的消息。其创始人王兴兴,这位外表斯文的年轻人,将科幻电影中的经典意象拖入了现实——全球首款量产版载人变形机甲GD01正式亮相,定价390万元起。 这并非概念渲染。实机演示中,这台双足直立的钢铁巨人,高度远超常人,一拳便能击碎砖墙;随后它重心后移,身形下沉
传统企业如何应对AI冲击与转型挑战
硅谷最近有一篇长文火了。作者是 Foundation Capital 的合伙人、前麦肯锡咨询师 Jaya Gupta。这篇文章在 X 上 12 小时内就获得了超过 130 万阅读,在创始人和 AI 从业者圈子里引发了广泛讨论和转发。 这篇文章之所以能激起如此大的涟漪,是因为它精准地戳破了 AI 时代
Bun内存泄漏拖垮Claude Code后如何用Rust重写修复
Bun宣布用六天完成的Rust版本取代原有Zig实现,涉及96万行代码,旨在解决内存泄漏与稳定性问题,尤其是作为ClaudeCode运行时的性能瓶颈。重写主要由AI完成,虽快速通过测试,但引发社区对代码质量及大量unsafe调用的担忧。此举标志Bun转向Rust,也反映AI驱动大规模代码重写的趋势。
Excel表格数据导入与整理技巧确保准确性
数据处理的成败,往往在分析开始前就已决定。扎实的数据导入与整理,是构建可靠分析模型的基石。这一步若存在疏漏,后续无论应用多复杂的公式或设计多精美的图表,结论都可能产生偏差。那么,如何系统性地确保数据基础既完整又准确呢?我们可以从以下几个关键环节入手。 一、数据导入:确保源头质量 首要任务是选择可靠的
李开复谈开源模型如何助力实现国家AI主权
近日,李开复博士在一场深度对话中,深入阐释了“AI主权”这一关键议题。他强调,AI主权不仅关乎技术控制权与数据存储地,更深层次的意义在于,人工智能模型必须与一个国家的文化传统、社会价值观及法律体系深度融合。李开复指出,对多数国家而言,盲目效仿OpenAI模式、投入巨资走完全闭源自研的“重资产”路线,
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

