有人把 Bun 的 Zig 运行时 fork 出来,砍到只剩生产部署,移植到了原生 Zig 0.16
看到一个挺有意思的项目: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 MiB | 88.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