Bun 从 Zig 到 Rust 的迁移已经实锤,下个版本可能成为最后一个 Zig 版本

5 月 11 日
 street000

来自 Bun 创始人的 推文

Bun v1.3.14 releases tomorrow.

Bun v1.3.14 将于明天发布。

If we do merge the Rust rewrite, this would be the last version in Zig

如果我们确定合并 Rust 重写版,那么这将是最后一个基于 Zig 语言的版本。

形式大好,看来迁移主要原因还是内存和崩溃问题:

目前我对它( Rust 重写版)非常有信心。它已经通过了 Bun 在 Linux (x64 + arm64 glibc + musl)、Windows (x64 & arm64) 以及 macOS (x64 & arm64) 上的所有测试套件。它可能会同时修复大约 200 个 GitHub issue 。目前还在进行重构和简化,相关的博文也还没写。

我还没看到过任何一个基准测试显示它比 Zig 版本慢。两者的代码库基本一致。它没有使用 Rust 的异步( async )机制,且和 Zig 版本一样,极少使用第三方库。本质上它们是同一个东西,只是 Rust 提供了更好的工具来帮我们防止程序崩溃。

5712 次点击
所在节点    Node.js
39 条回复
wangtian2020
5 月 12 日
bun 作者挺喜欢这么搞的,以前他为了证明 nodejs 垃圾 zig 牛逼,他可以写个 bun 出来
现在他为了证明 AI claude 牛逼也能会 rust 重写,像是他能干的出来的事儿
wsseo
5 月 12 日
@jjx 打击的是 AI 编程。为什么还在乎编程语言呢,说明 AI 不堪大用。
IamUNICODE
5 月 12 日
zig 迟迟不出 1.0 就是这样的
iorilu
5 月 12 日
ai 时代 rust 是好东西

rust 基本搞出来就能运行, 不崩溃, 太难的了

其他都每必要, 真在乎那点性能直接用 c 甚至汇编, 无论啥语言也不可能性能比 c 或汇编强把
5waker
5 月 12 日
zig 不接受 ai 代码,要不依赖 llvm( https://github.com/ziglang/zig/issues/16270),要自己搞 libc ( https://ziglang.org/devlog/2026/#2026-01-31 ),这些工作要做到什么时候去。
5waker
5 月 12 日
@5waker 就这些事搞完了语法、编译期校验也不如 rust, ai 编程效果就会差。bun 切 rust 算是意料之外,情理之中了。
zhouhuab
5 月 12 日
这等同宣告 zig 的死亡
irrigate2554
5 月 12 日
@songray 只要是兼容的话升级不就好了,搞得更 rust 版本要收费一样
zxjxzj9
5 月 12 日
@isbase 因为 rust 是真除了逻辑 bug 以外没别的 bug, 不然你编译都过不去. 这样就算 ai 写的是"错的", 人来写也未必就是对的,只是你逻辑目标设置的有问题而已. 当然这不代表用 ai 写 rust 就能很轻松的让程序正确运行, 但是就我的体验来说重写别的库(尤其是和内核,底层操作的库)这块真的是 rust 的舒适区.
alleluya
5 月 12 日
@onichandame #16 deno 又换成 rust 写了吗?
enpitsulin
5 月 12 日
没有 LTS 版本的东西真的有人除了玩具项目敢上生产吗😅
Bluecoda
5 月 12 日
如果真的转了,并且问题确实都修复了,说明这种基础设施软件,rust 比 zig 优秀太多了
shiloh595
5 月 12 日
R 门🙏
darson
5 月 13 日
如果这么复杂的生产级别项目可以由 zig 转换成 rust 不出错,且保持性能,且免疫明显的内存错误,其他基于非安全语言的项目也可以并应该这么做。期待这个小白鼠试验的效果。
lycc193
5 月 13 日
@5waker #9 zig 不接受 ai 代码,和你 zig 的项目用 ai 写有一丝一毫关系吗
yuhuai
5 月 13 日
呃,zig 是被 bun 带火了一波,但是不会真的有人觉得是 zig 离不开 bun 吧...,关于吐槽上游不允许使用 ai 生成的代码我觉得没有问题啊,虽然浪费的时间多,但是 zig 确实走出了一条别人没走过的路,ai 并不具备创造的能力,只有对知识拙劣的模仿,你记住
yuhuai
5 月 13 日
你们可以看下 zig 0.16 的没有语法上的异步,Io 接口解耦了,同一函数可以在任意 Io 实现(阻塞/有栈/无栈)下运行
5waker
5 月 13 日
@lycc193 不看后面的?他目前的工作不用 ai 要多久才能完成,关键这都还不是语言上的目标。那什么时候才能 1.0 才能不破坏变更?才能让用它的人不用升级一堆麻烦?
ExplodingDragon
5 月 15 日
看了下 bun 已经合并了 rust pr 了 hhhh ,这种项目还是在小圈子自萌去吧,架构/语言说变就变,旧的 pr / issue 完全不管,藐视贡献者玩独裁主义

https://github.com/oven-sh/bun/pull/30412

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1211992

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX