Analysis

Zig Parser Yuku Challenges Rust Rivals, Matches Oxc and SWC Benchmarks

Yuku’s Zig parser edged Oxc on a 7.83 MB TypeScript file and cut SWC’s time nearly in half, jolting Rust’s parser-speed bragging rights.

Sam Ortega2 min read
Published
Listen to this article0:00 min
Share this article:
Zig Parser Yuku Challenges Rust Rivals, Matches Oxc and SWC Benchmarks
AI-generated illustration

Yuku just made Rust’s easy advantage in JavaScript tooling look a lot less secure. On a 7.83 MB TypeScript file, the Zig-written parser posted a 30.14 ms mean parse time, barely ahead of Oxc at 30.45 ms and far ahead of SWC at 57.00 ms, a result that lands like a direct shot at the assumption that Rust automatically owns the high-performance parser lane.

The benchmark backing that result ran on macOS 24.6.0 in a virtual Apple M4 Pro environment with 6 cores and 14 GB of memory, and it was not a simple parse-only stopwatch. The native benchmark notes that SWC checks some scope-dependent early errors during parsing, while Yuku and Oxc defer those checks to a separate semantic-analysis pass. That means the reported numbers include parsing plus scope-tree construction, symbol-table building, identifier resolution, and the remaining early-error reporting. In that fuller test, Yuku still stayed competitive, including a 45.30 ms run on typescript.js versus 58.64 ms for Oxc.

The margins were not one-sided, though, and that matters. Oxc was slightly faster on both three.js and react.js, taking 6.58 ms on the 1.96 MB three.js file compared with Yuku’s 7.20 ms, and 1.30 ms on the 0.07 MB react.js file compared with Yuku’s 1.33 ms. This is not a blowout so much as a sharp reminder that parser speed now comes down to the exact file, the exact pipeline, and how much work a project folds into the measurement.

Yuku’s own pitch is aggressive. Its repository describes it as a high-performance JavaScript and TypeScript toolchain written in Zig, with a spec-compliant, zero-dependencies design. The project says it passes all parser tests from Test262 and supports modern and experimental JavaScript features including decorators, source imports, and defer imports. For a new parser to bring that much coverage and still land alongside Oxc is the part that should get Rust toolchain builders paying attention.

The real tension here is not just Zig versus Rust. Oxc is part of VoidZero’s broader high-performance toolchain vision, SWC still tracks a current MSRV of 1.73, and Oxc’s own benchmark repo has long claimed its parser is at least 3x faster than SWC and 5x faster than Biome. But SWC creator kdy1 has also spent years surfacing the harder problems underneath the headline numbers, from AST transfer costs between Rust and JavaScript to stack limits in deeply nested recursive descent parsing. Yuku’s six-month rise, and its claim to produce the same AST as Oxc, suggests the next parser fight may be decided less by language loyalty and more by data structures, interop cost, and implementation strategy.

Know something we missed? Have a correction or additional information?

Submit a Tip

Never miss a story.
Get Rust Programming updates weekly.

The top stories delivered to your inbox.

Free forever · Unsubscribe anytime

Discussion

More Rust Programming News