前端工具链 Yuku 正式发布:纯 Zig 打造,官方 Benchmark 最高快 5.4 倍
原创
响应式生活
响应式生活
前端开发
2026年7月14日 22:18
福建
在小说阅读器读本章
去阅读
JavaScript 工具链生态仍在快速发展。
继 esbuild、SWC、Rspack、Rolldown、Biome 和 Oxc 等项目证明了原生实现的优势之后,又一个颇具野心的新项目正式进入这一领域。
Yuku 是一个完全使用 Zig 编写的 JavaScript/TypeScript 工具链。它并不仅仅专注于某一个组件,而是希望构建一套完整的现代 JavaScript 编译基础设施,并围绕 正确性(Correctness)、性能(Performance) 和 开发者友好的架构(Developer-friendly Architecture) 展开设计。
为什么还需要一个新的工具链?
近年来,现代前端工具链逐渐从 JavaScript 实现转向原生语言实现。
一些大家熟悉的项目包括:
- esbuild(Go)
- SWC(Rust)
- Oxc(Rust)
- Rspack(Rust)
- Bun(大量使用 Zig)
Yuku 同样采用了原生实现的思路,但选择了另一条路线:整个编译基础设施完全使用 Zig 编写。
根据官方介绍,这种设计可以减少构建阶段的依赖,简化跨平台编译,同时也更容易嵌入到其他应用程序中。
Github:https://github.com/yuku-toolchain/yuku
官网:https://yuku.fyi/
将正确性放在首位
Yuku 并没有把规范兼容性放在性能之后,而是将两者放在同等重要的位置。
官方表示,它的 Parser 已实现对 ECMAScript 规范的完整支持,并通过了来自 Test262、Babel 和 TypeScript Compiler 的数万条测试用例验证,同时还与现有实现进行了 AST 输出比对。
对于编译器和工具链开发者来说,Parser 的正确性往往比单纯的 Benchmark 成绩更加重要。哪怕只是一个细微的不一致,也可能导致 Linter、Formatter 或 IDE 等下游工具出现不同的行为。
Parser 性能表现
性能同样是 Yuku 的重点之一。
根据官方公布的 Benchmark(基于 Apple Silicon 平台,在具有代表性的 JavaScript 工作负载下完成测试):
- 在原生 Parser Benchmark 中,Yuku 的 Parser 性能超过了 Oxc。
- 在相同的测试条件下,其解析吞吐量约为 SWC 的 2 倍。
- 通过 Node.js Binding,在解析大型源码文件时,相比传统的 JavaScript Parser(如 Acorn 和 Babel Parser),性能可提升 3~10 倍,而且源码文件越大,优势越明显。
需要说明的是,这些数据来自官方公布的测试环境,并不能代表所有场景下的性能表现,但足以说明 Yuku 已经具备了较强的竞争力。
为什么它的 Node.js Binding 更快?
官方介绍中,还有一个比较有意思的设计。
传统的原生 Parser,在向 JavaScript 暴露 AST 时,通常需要先将内部数据结构进行序列化,再由 JavaScript 侧进行反序列化。对于大型源码文件来说,这部分数据转换会带来比较明显的额外开销。
Yuku 在设计 AST 时,就考虑了跨语言交互的效率。结合 Zig 的 Compile-time(comptime) 能力以及更加紧凑的内存布局,可以减少数据转换带来的开销,从而提升在 Node.js 环境下的整体性能。
这也是 Yuku 相比其他项目比较有特色的一项技术设计。
纯 Zig 架构
Yuku 完全采用 Zig 实现。
更准确地说,它在构建过程中不需要额外依赖第三方 C 库,因此跨平台编译和发布都更加简单。
当然,这并不意味着它在 Node.js 中运行时不需要底层运行环境。使用 Node.js Binding 时,仍然需要依赖 Node.js 原生扩展机制。这里所谓的\"零依赖\",主要是指构建阶段无需引入额外的 C 库,从而降低了跨平台构建和维护的复杂度。
当前已经具备哪些能力?
截至目前,官方标记为稳定(Stable)的能力包括:
- JavaScript Parser
- TypeScript Parser
- Semantic Analysis
- AST Traversal API
官方将 Yuku 定位为一套完整的编译基础设施,而 Code Generator 等更多组件将在后续版本中持续完善。
支持现代 JavaScript 特性
Yuku 已经支持多种现代 JavaScript 语法,包括:
- TypeScript
- JSX / TSX
- Decorators
using/await using
此外,它还提前支持了一些处于 Stage 3 阶段的 ECMAScript 提案,例如:
- Source Phase Imports
- Deferred Imports
这意味着工具链开发者可以在这些提案正式成为 ECMAScript 标准之前,就开始进行相关实验和适配。
可以应用在哪些场景?
按照目前的能力,Yuku 已经可以作为以下工具的基础设施:
- Linter
- Formatter
- Static Analysis Tool
- IDE Language Service
- Build Tool
- Compiler Infrastructure
根据官方介绍,它的 Parser 和 Semantic Model 已经达到可用于生产环境的成熟度。
写在最后
Yuku 为原生 JavaScript 工具链生态带来了一个值得关注的新选择。
它并不仅仅追求更高的 Benchmark 成绩,而是在 规范兼容性、Parser 性能以及 Zig 原生架构 之间寻找平衡,希望打造一套可靠的编译基础设施。
当然,一个工具链能否真正成功,并不仅仅取决于 Parser 本身。
未来能否获得更多开发者采用,还需要看生态建设、API 稳定性、社区活跃度,以及与现有 JavaScript 构建体系之间的兼容性。
如果这些方面能够持续推进,Yuku 有望成为继 Oxc、SWC、Rolldown 等项目之后,又一个值得关注的 JavaScript 基础设施项目。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论