Yuku 是一个用 Zig 编写的高性能 JavaScript/TypeScript 编译工具链项目,目标是把现代 JS 工具基础设施带进 Zig 生态。
为什么是 Zig 近几年 JS 工具链的主流选择是 Rust 和 Go:esbuild、swc、Rome/oxc、Biome 这些都在这两个阵营。Zig 的优势在于:
- 编译期计算和 comptime 能力,适合写解析器和代码生成。
- 手动内存管理但语法简洁,性能上限高。
- 交叉编译体验好,产物是无依赖的静态二进制。
- 没有隐藏的控制流和分配,行为可预测。
对编译器这种需要精细控制内存布局、又要启动快的程序,Zig 确实是个合理选择。
JS 工具链现在在卷什么 过去五年这个领域的进化路线很清晰:
- 第一波:替代 Babel/terser。esbuild 用 Go 证明了并行 + 原生能快一到两个数量级。
- 第二波:类型剥离。swc 和 oxc 把 TS 到 JS 的转换简化成纯语法擦除,不做类型检查,速度再提一个量级。
- 第三波:一体化。Vite、Turbopack、Rspack 这类把打包、转换、开发服务器整合,重点是增量和缓存。
现在的新项目想突围,要么在某一点上做到极致,要么提供现有工具没有的能力。
该不该关注 如果你是普通业务开发者,现在还不需要考虑。工具链的替换成本很高,收益要到构建时间真的成为瓶颈时才显现。
值得关注的情况:
- 你的 CI 里构建占了大部分时间。
- 你在做需要内嵌编译能力的产品(在线 IDE、低代码平台)。
- 你对 Zig 感兴趣,想找一个真实的编译器项目读源码。
一个务实的评估方法 拿你自己的项目跑一次对比:现有工具链的冷启动构建、增量构建、生产构建各记一次时间,再用候选工具同样跑一遍。别看官方 benchmark——那些通常是精心挑选的场景。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。