有人把 Bun 的 Zig 运行时 fork 出来,砍到只剩生产部署,移植到了原生 Zig 0.16

0 条回复
30 次浏览

看到一个挺有意思的项目:Cruller

这是 Bun 最后一个 Zig 版本的 fork,但把包管理器、打包器、转译器、Shell、测试运行器、N-API、SQL 客户端这些开发阶段的东西全砍了,只保留已构建好的 JS 服务器:

  • JavaScriptCore 引擎
  • Bun.serve、HTTP/1-3、WebSocket
  • fetch、Streams、Blob、Request/Response
  • 静态文件服务、模块解析器

这不是一个通用 Bun 替代品,就是一个精简的生产运行时。

原来 Bun 用的是自己魔改的 Zig 构建系统,Cruller 把它剥离出来换成了原生 Zig 0.16 构建图,给 0.15→0.16 的 API 变更写了兼容 shim,生成代码也改成嵌入模块,release 构建不再依赖构建目录。

体积对比(Linux x64)

Cruller (ReleaseFast, stripped)官方 Bun 1.3.14
体积73.0 MiB88.5 MiB

缩减了大约 18%

V8 Crypto 纯 JS 基准测试性能持平,中位数高 ~2%,在正常波动范围内。

状态

当前还在 WIP,目前只支持 Zig 0.16.0 / Linux x64。已通过语义检查、release 构建、CJS/ESM 入口、Node 路径测试、HTTP 冒烟测试。

作者明确声明 AI 作为工程助手参与了 Zig 0.16 迁移和调试,但架构决策、代码审查、构建验证都是人主导的,不是纯 AI 生成项目。这个态度在现在的 Zig 社区还挺少见的。

📎 仓库: github.com/solenopsys/cruller
📎 原帖: ziggit.dev

发表一个评论

R保持