天津异型材设备价格_建仓机械

九江塑料挤出设备 个东谈主+Claude,11天生成100万行Rust代码!Bun创举东谈主复盘从Zig到Rust重写全过程

发布日期:2026-07-12 03:24点击次数:80

塑料挤出机

编译 | 苏宓

出品 | CSDN(ID:CSDNnews)

从 Zig 到 Rust,闻明的开源名堂 Bun 完成了次的时间转向。

近日,JavaScript 运行时 Bun 创举东谈主 Jarred Sumner 发布长文,次公开复盘 Bun 重写背后的全过程。

这位曾恒久力挺 Zig 的开荒者,用篇著述扎眼讲解了为何终决定放胆这谈话,并共享了我方个东谈主若何借助 Anthropic 的 Claude Fable 5 与 Claude Code,仅用 11 天便完成了 53 万余行 Zig 代码向过 100 万行 Rust 代码的挪动,也借此但愿冒昧给多开荒者些参考。

个曾把 Zig 向宇宙的东谈主,如今主动重写它

如若说往日几年,谁让多开荒者意识 Zig,Jarred Sumner 定排得上号。

Bun 初等于个将 esbuild 的 JavaScript 和 TypeScript 转译器从 Go 逐行移植到 Zig 的名堂。

2021 年 4 月 16 日,Jarred Sumner 写下了我方的行 Zig 代码。他自后回忆称,那时在 Hacker News 上看到份单页版的 Zig Language Reference,Zig 对底层的掌控才调以及对能的致追求给他留住了刻印象,因此决定将 Bun 押注在 Zig 之上。

从定位上看,Bun 运行的计划就远不仅仅个简便的 JavaScript 运行时。

Jarred Sumner 称,Bun 构建之初,贪心就绝顶大,其试图在个统器具链中覆盖 JavaScript 和 TypeScript 开荒经过中的多个中枢措施,包括 JavaScript、TypeScript 和 CSS 的转译、压缩与包;兼容 npm 的包经管器;肖似 Jest 的测试运行器;兼容 Node.js 与 TypeScript 的模块说明机制;HTTP/1.1 和 WebSocket 客户端,以及包括 fs、net、tls 在内的多数 Node.js API 达成。

这个精深的计划简直一谈由 Sumner 东谈主完成。按照他的回忆,Bun 第一版块耗时约年开荒完成,那时他还莫得 LLM 器具扶直,主要在奥克兰间短促的公寓里,使用 Zig 完成了通盘名堂。

Sumner 以为,关于这样个贪心精深的个东谈主名堂,终堕入 GitHub 个东谈主主页中“毁掉名堂的坟场”才是常见的结局。而 Zig 的出现,让 Bun 成为了可能。“如若莫得 Zig,我不成能在年时分里完成这样多责任。”

跟着时分移,如今的 Bun 照旧从个个东谈主开荒名堂成长为被闲居遴荐的 JavaScript 器具链。其呐喊行器具每月下载量过 2200 万次,包括 Claude Code、OpenCode 在内的热点开荒器具都取舍将 Bun 手脚运行时。同期,Vercel、Railway、DigitalOcean 等云平台也照旧提供了对 Bun 的官支捏。

不外,Bun 追求“大而全”的设计理念,也带来了恒久说明的挑战。跟着不断膨胀,名堂复杂度捏续高涨,若何爱戴个覆盖运行时、器具链和 Node.js 兼容层的精深系统,成为 Bun 后续发展中须面临的问题。

为什么放胆 Zig?

在新发布的博客中,Jarred Sumner 并莫得含糊 Zig。违反,他暗示,如若时分回到 2022 年,我方依然会取舍 Zig 手脚 Bun 的底层谈话。

在 Bun 早期发展阶段,Zig 如实展现出了明显势。它领有秀的 C 谈话互操作才调、爽朗平直的谈话设计,以及接近 C/C++ 的底层甘休才调,这些特匡助 Bun 快速搭建起个能 JavaScript 运行时。

但跟着 Bun 界限不断扩大,问题也渐渐暴线路来。

Sumner 回忆称,跟着代码量增长,团队不得不插足越来越多元气心灵处理内存深切、生命周期经管以及多样底层说明问题。多数 Bug 开荒任务不断麇集,以致影响到了开荒者的日常现象。

他坦言,“数不胜数的 Bug 开荒清单让我身心俱疲,每晚睡前都会惦记 Bun 是否会出现运行崩溃。”

要津的是,这些问题并不是单纯依靠加严格的编码表率就冒昧避。即便团队进行了多数代码审查,底层内存安全问题依然可能出现。

因此,Sumner 运行从头评估 Bun 的时间阶梯:是否应该取舍门冒昧从谈话层面减少这类问题的谈话。

C/C++ 能否成为替代案?

事实上,C++ 也曾是个看似理的取舍。

当今 Bun 约有 20 的代码遴荐 C++ 编写,同期名堂里面也多数依赖 C/C++ 生态中的锻真金不怕火组件,包括用于相沿 Safari 的 JavaScript 引擎 JavaScriptCore、提供 HTTP/WebSocket 才调的 uWebSockets 与 usockets、达成 HPACK 和 HTTP/3 的 lshpack 与 lsquic、Google 基于 OpenSSL 开荒的 BoringSSL,以及 SQLite 等。

因此,如若取舍 C++ 重构 Bun,并非从运行。

Sumner 以为,C++ 以致冒昧带来些便利。举例,开荒者不错平直使用构造函数和析构函数经管资源,同期减少多数 extern \"C\" 的封装代码。

但问题在于,C++ 依然法从根底上治理内存安全挑战。

即便团队遴荐加严格的代码审查经过,制定编码表率,并开启 AddressSanitizer(ASAN)等检测器具,内存越界、资源开释诞妄以及内存深切等问题仍然可能发生。

终,C++ 并莫得成为 Bun 的谜底。

而这也成为 Sumner 转向 Rust 的进犯原因之:比较依赖工程表率和东谈主工审查,Rust 但愿通过编译器和通盘权模子,在代码运行之前就忙活多数潜在诞妄。

为什么取舍 Rust?

此前困扰 Bun 的多数问题,主要汇聚在内存安全域,包括 use-after-free(开释后使用)、double-free(沟通开释),以及特地分支中遗漏资源开释等情况。

而在 Rust 的安全子汇聚,这类问题通常会在编译阶段平直被忙活。Rust 通过通盘权、借用搜检器以及 Drop 机制,达成肖似 RAII 的自动资源经管,让许多潜在诞妄在代码运行前就暴线路来。

比较依靠团队制定编码表率、进行东谈主工 Code Review 来裁汰风险,Rust 编译器提供了种加严格且强制的拘谨式。

但关于 Bun 这样的锻真金不怕火名堂而言,挪动到另门谈话并不是个简便决定。

据 Sumner 先容,剔除扫视后,Bun 现存 Zig 代码界限约为 53.5 万行。如若依靠个微型工程团队手动完成谈话挪动,瞻望需要整整年时分。而在这年里,Bug 开荒、安全补丁以及新开荒都将受到影响。

因此,他们团队以为,想要以低风险完成挪动,理的案并不是从头设计代码,而是进行次“机械式移植”——尽可能保捏原有逻辑不变,大程度复用现存测试体系,通过测试着力考证挪动后的代码是否可靠。

运道的是,Bun 自身领有套基于 TypeScript 构建的完好测试体系,并不依赖底层运行时遴荐何种编程谈话,这也为挪动提供了进犯基础。

然则,暂停开凶年并不是现实取舍。

Sumner 暗示,初团队探讨过另条阶梯:连接使用 Zig,通过加严格的编码表率拘谨内存安全问题,同期在代码库中加入模仿 Rust 想想设计的自研智能指针。

但这案并莫得让他雅瞻念。

在 Sumner 看来,自研智能指针论是开荒体验如故安全保险,都法达到 Rust 的水平。比较从头造套内存经管机制,平直遴荐门照旧经过多年考证的系统谈话似乎加理。

就在这个过程中,他产生了个果敢设计:

“为什么不花周时分,测试下 Anthropic 新的大模子,望望它能否把 Bun 完好重写成 Rust?”

初,Sumner 对这主义并莫得抱太大期待。

但实验运行后,情况很快发生变化。几天之后九江塑料挤出设备,多数测试用例照旧冒昧正常通过,而 AI 生成的 Rust 代码与原有 Zig 达成之间,也展现出了较的致。

这让 Sumner 的主义发生了转动。

运行,他仅仅但愿考证“AI 是否冒昧完成这项任务”;但跟着挪动着力渐渐说明,终决定平直并这套由 AI 扶直完成的 Rust 重构代码。

借助 Claude,用 Rust 重写 Bun

挪动起头,Sumner 以为,这类大型重构存在多数容易踩坑的作念法。举例,平直向模子输入句“将 Bun 改写成 Rust,并确保不会出现任何问题”,然后期待 AI 次完成通盘名堂,这并不是可靠案。

在他的设计中,AI 扶直重构需要盲从肖似东谈主工挪动的工程法,中枢需要治理两个问题:是渐进式重构,如故次全量挪动?以及若何保证挪动后的 Bun 与原版块保捏致。

关于挪动式,Sumner 终取舍了次全量移植。

他回忆称,初开荒 Bun 时,我方也曾手动将 esbuild 的 JavaScript/TypeScript 转译器从 Go 挪动到 Zig,况兼通盘过程莫得使用任何大谈话模子。把柄此前教学,次完成完好挪动,通常比渐进式重构果好。

原因在于,渐进式重构通常会产生多数临期间码。这些代码固然冒昧匡助名堂缓缓过渡,但跟着时分移,团队还需要不断计帐历史职守,终致代码结构加复杂,恒久爱戴体验下落。

因此,在 Bun 从 Zig 挪动到 Rust 的过程中,团队决定遴荐加平直的式:尽可能保捏原有逻辑不变,将 Zig 代码补救为 Rust 达成。

另个要津问题是,若何保证 Rust 版块 Bun 与原版块在架构、能和上保捏致,同期又冒昧应用 Rust 的核快慰全特,举例借用搜检器。

终,Sumner 信服了个相对保守的案:

先按照“Zig 直译 Rust”的式完成挪动,再缓缓化代码。

也等于说,阶段的计划不是写出雅的 Rust,而是确保 Rust 版块冒昧完好替代原有 Zig 版块。等 Bun v1.4 发布后,再缓缓减少 unsafe 代码块,将部分达成改写成加符 Rust 谈话民俗的形状。

在 Sumner 看来,挪动过程委果需要治理的中枢问题独一这两个,其余多属于工程实践细节。

11 天完周详量挪动:Claude Code 构成 50 套动态责任流

为了实践这项大界限挪动,Sumner 并莫得让 Claude 单完成任务,而是在 Claude Code 中搭建了套轮回式代码生成与审核经过。

他以为,软件工程师日常开荒骨子上等于个轮回:漠视任务 → 编写代码 → 继承响应 → 修改代码 → 再次考证。

这次 Bun Rust 重构,亦然按照肖似式运行。

在 Claude Code 中,Sumner 创建了约 50 套动态责任流,捏续运行 11 天,完成通盘代码库挪动。

这些责任流覆盖多个阶段:

先,Claude 需要生成挪动指南,建设 Zig 语法、类型系统与 Rust 之间的映射律例。

随后,把柄 PORTING.md 和 LIFETIMES.tsv 等文档,隔热条设备将一谈 .zig 文献机械补救为 .rs 文献。

之后,系统捏续处理 Rust 编译诞妄,让各个 crate 缓缓复原正常运行,并确保 bun test、bun build 等中枢呐喊冒昧责任。

后,通过完好测试套件考证挪动着力,并进行多轮代码重构和计帐。

通盘过程中,Sumner 并不是落拓让 AI 自动运行,而是捏续监控责任流现象。

当出现特地时,他会东谈主工稽查日记,定位问题,再补救 Claude 的实践经过,让模子从头处理诞妄。

天然,关于次新增数十万行以致百万界限代码的 Pull Request,许多东谈主大的疑问是:若何确保 AI 生成的代码值得信任?

Sumner 给出的谜底是:测试体系 + 抗击式代码评审。

Bun 蓝本就领有套与底层达成谈话关的测试体系,其中包含百万断言,不错捏续考证 Rust 版块是否保捏原有行径。

但仅靠测试仍然不及。

因此,他引入了套肖似东谈主工软件开荒经过中的“代码作家”和“代码审查者”分歧机制。

在传统开荒中,代码作家和代码审查者通常是两个东谈主。原因在于,代码编写者通常但愿我方的达成冒昧尽快并,容易忽略自身代码中的问题;而立审查者则会站在怀疑角度寻找潜在罅隙。

Sumner 以为,Claude 通常存在肖似倾向。

因此,在 Bun Rust 重构过程中,他遴荐了“生成 Claude + 抗击评审 Claude”的模式:个 Claude 负责生成代码;至少两个 Claude 负责立审查。

审查模子不会看到生成过程,只可读取代码 Diff,并默许代码存在劣势,任务等于寻找可能致 Bug、逻辑失或者能退化的问题。

终,生成端和评审端酿成相互制约。

这机制并非表面设计,而是在推行挪动过程中发现了确切问题。其中个典型案例来自异步关闭句柄问题。

Claude 生成的 Rust 代码冒昧正常编译,逻辑名义上也莫得明显诞妄,但评审模子发现,代码可能致 use-after-free 和 double-free。

问题源于 libuv 的异步关闭机制。

当调用 uv_close 时,libuv 并不会立即开释句柄,而是恭候后续事件轮回触发还调完成计帐。但 Rust 中 Box 包裹的对象会在作用域末端时自动析构开释。

这意味着,libuv 可能连接探望照旧被开释的内存,从而激励崩溃。

终,团队通过补救代码,让对象生命周期蔓延,避异步回调探望失内存。

Sumner 暗示,这类问题恰是传统代码审查容易遗漏,而 Rust 编译器和抗击式 AI 审查冒昧匡助发现的问题。

在通盘挪动过程中,抗击评审提前发现了多类确切 Bug,包括异步资源开释问题、负数时分戳处理问题等。

这些代码在编译阶段莫得任何诞妄,测试初期也未冒昧露馅问题,但经过立 Claude 审查后被提前遏止。

关于 Sumner 而言,这次 Bun Rust 重构大的变化并不仅仅“AI 写了多数代码”,而是软件工程经过本人发生了变化:AI 不再仅仅代码生成器具,而成为参与挪动、测试和审查的大界限工程互助者。

全经过复盘

阻止忽视的是,这次挪动并非是几句请示词的事,Sumner 在这次挪动过程中作念了多数的责任,扎眼来看:

前置筹备:制定统移植表率

在持新生成代码前,Sumner 插足 3 小时与 Claude 度对王人 Zig 到 Rust 的语法、类型映射律例,由模子输出表率化移植文档`PORTING.md`,这份文档后续也发布至 Hacker News (https://news.ycombinator.com/item?id=48016880)公开共享。

名堂浩劫点在于原有 Zig 代码混手动内存经管与 GC 内存,原生 Rust 生命周期标注体系。为此,Sumner 搭建属动态责任流,让 AI 逐文献遍历一谈结构体字段,梳理完好甘休流,适配 Rust 的生命周期参数。

每组生命周期案都会交由两组立抗击评审模子校验,修正打破标注后,统存档为`LIFETIMES.tsv`,手脚后续通盘代码补救的统表率,Sumner 本东谈主也东谈主工复核两份中枢文档,捣毁律例罅隙。

小界限试点移植:考证 AI 补救与抗击评审机制可行

为避大界限补救出现批量逻辑偏差,Sumner 先选取3个`.zig`文献开展试点。单文献分拨 1 个 AI 模子负责生成对应`.rs`代码,2 组立抗击评审模子对照移植表率校验代码逻辑致,后由开荒模子统落地评审修改主见。

试点阶段考证了中枢质控技巧——抗击式代码评审的有:评审 AI 仅能读取代码 diff,法稽查代码生成模子的凹凸文,且被强制预设代码存在劣势,穷尽挖掘潜在内存崩溃、逻辑退化问题,提前遏止编译正常但存在隐劣势的代码。

批量全量代码挪动:治理多实例呐喊打破,并行生成百万行代码

名堂策划需要补救 1448 个 Zig 源码文献,初期实践出现多 Claude 实例并发实践 git 操作打破,stash、reset 等指示相互覆盖修改内容;若为每个 AI 分拨立责任区,Bun 精深的代码仓库又会耗尽磁盘存储空间。

Sumner 赶紧新责任流拘谨律例:抵制实践任何临时修改类 git 呐喊、禁用 cargo 等耗时紧闭指示,仅允许单次提交指定文献。后续拆分 4 套立并行责任分片,每套分拨 16 个 Claude 同步运行,策划 64 个 AI 并行功课。

峰值现象下 AI 每分钟可产出 1300 行代码,每行代码都经过两名立抗击评审校验,完成轮开荒后才允许提交。

11 天运行累计生成 6502 次有提交,峰值单小时提交量 695 次。

批量开荒编译报错:拆分 Crate 并行处理,化解轮回依赖阻碍

百万行代码生成结束后,Sumner 搭建责任流以单个 crate 为单元批量处理编译报错,通过`cargo check`汇总一谈诞妄并按文献分组,分拨 64 个 AI 分管开荒任务,依旧沿用“1生成+2评审+1落地开荒”的固定轮回。

原有 Zig 代码为单编译单元,Sumner 权术拆分近百个 Rust crate 加快编译,但拆分案前期存在劣势,多数轮回依赖激励约 16000 条编译诞妄。

其团队也运行新增项责任流梳理轮回依赖代码包摄、完成模块重构,扫清编译忙活。

通盘过程中出现了 AI 为绕过报错填充占位 stub、添加大段冗余扫视隐敝不睬兼容逻辑的问题,Sumner 为抗击评审新增遏止律例:若需要长篇扫视讲解临时兼容案,判定代码存在根底劣势,须重构而非临时占位,终这问题在补救请示词后治理。

分层测试活水线:从冒烟测试到土产货全量用例全覆盖

编译报错后,名堂分阶段进测磨砺证:

1. 基础烟雾测试:先达成`bun --version`正常编译运行,治理聚合诞妄、表率启动 panic;

2. 子呐喊适配责任流:一一开荒`bun test`、`bun build`等CLI子呐喊运行崩溃,拿获堆栈交由AI迭代开荒;

3. 全量土产货测试分片实践:按代码目次拆分 4 个责任区,有时分拨百条测试用例并行实践,拿获失败用例自动走AI开荒评审经过。

Bun 测试套件包含海量内存深切检测、长耗时集成测试、限压力测试,部分用例运行时长分钟,还会耗尽 TCP 聚合、读写 GB 文献、创建上万子进度。Bun 团队借助`systemd-run`(cgroups)作念 CPU、内存、PID 定名空间破裂,但奇迹器仍屡次因磁盘占满宕机,拉长了通盘测试周期。

CI 全平台适配收尾,完因素支并

轮 CI 活水线实践时,共有 972 个测试文献运行失败。经过两天的运行,失败的测试文献数目缩减至 23 个,再经过天半调试,Linux 平台通盘测试分片一谈绿灯。

名堂覆盖 macOS x64/arm64、Linux x64/arm64、Windows x64/arm64 六大平台,Windows 适配难度,比 Linux 晚近天完周详量用例通过。收尾阶段捏续运行自动化责任流,轮回开荒各平台剩余 CI 失败用例,配套项责任流处理 Windows 属兼容、代码去重、削减 unsafe 代码块、举座代码计帐。

在一谈平台 测试通过,且东谈主工核验通盘效例跳过、正常实践后,Sumner 持重将百万行 Rust 重构代码并至主分支。

本次并仅完成代码落地,并未对外发布郑再版块,留足迭代化周期。

Rust 版的 Bun

从数据层面来看,通盘重构周期为 5 月 3 日至 5 月 14 日,共计 11 天。

峰值 4 套责任流、64 个 Claude 并走时行。移植阶段累计 4416 次提交,分钟峰值 58 次提交,新增+改写代码计 1430577 行,终并入库变量 1009272 行,全程任何测试用例删除或跳过。

资源消费层面,并前累计消费未缓存输入token 59 亿、输出 token 6.9 亿,缓存读取输入 token 720 亿,按官 API 订价折算资本约 16.5 万好意思元。

终完成 Rust 重构后的 Bun v1.4.0 针对开荒了上版块 128 类内存与运行故障,依托 Rust 原生 Drop 自动析构机制治理恒久存在的内存深切问题,官实测批量包场景内存占用大幅回落。

同期成绩于跨谈话 LTO 聚合化、栈空间复用机制,全平台运行能进步 2 至 5,二进制装配包体积举座缩减约 20,栈内存消费也显耀裁汰,万般限递归说明场景不再闲居触发表率崩溃。

新版块兼顾分娩落地实用与恒久迭代爱戴,Prisma、Claude Code 等主流器具已当先上线试用,Linux 环境下 Claude Code 启动速率进步 10。

从开荒侧来看,移植后的 Rust 代码与原有 Zig 逻辑度对王人,原有开荒东谈主员上手门槛低,搭配 borrow checker、Miri、7×24 小时说明器依稀测试等器具,后续团队可系统侧目内存安全类劣势,为捏续迭代筑牢说明基础。

后,Sumner 感触谈,若交由闇练完好代码库的工程师团队东谈主工完资本次 Rust 重构,瞻望耗时整年。而仅我东谈主配 Fable 模子、全程监控 Claude Code,仅用 11 天就完周详平台测试套件 通过。

如今单东谈主借助 AI 器具,能完成远过昨年的开荒责任量。

来源:https://bun.com/blog/bun-in-rust

2026 奇点智能家具大会全日程持重发布!

7月17-18日,北京金隅喜来登大栈房,40+位来自字节、百度、阿里、腾讯、宇树、360、京东、蚂蚁、科大讯飞等线家具时间袖,围绕 Agent 智能体、企业 AI、AI Coding、具身智能、AI 原生组织等 12 大题,全链路拆解AI原生落地闭环。

手机:18631662662(同微信号)相关词条:设备保温     塑料挤出机厂家     预应力钢绞线    玻璃丝棉    万能胶厂家

1.本网站以及本平台支持关于《新广告法》实施的“极限词“用语属“违词”的规定,并在网站的各个栏目、产品主图、详情页等描述中规避“违禁词”。
2.本店欢迎所有用户指出有“违禁词”“广告法”出现的地方,并积极配合修改。
3.凡用户访问本网页,均表示默认详情页的描述,不支持任何以极限化“违禁词”“广告法”为借口理由投诉违反《新广告法》,以此来变相勒索商家索要赔偿的违法恶意行为。