Rspack 2.3 lands SWC Next parser, new cache, and leaner bundles
Build tooling is getting meaningfully faster and more memory-efficient for teams running multiple dev servers or large monorepos. The shift toward SWC Next's flat AST could rewrite how custom transforms are written, letting developers keep JavaScript ergonomics without paying a cross-language performance penalty.
Rspack 2.3 brings the SWC Next parser into its Rust core, replacing the JavaScript parser with a flat ESTree AST that cuts parsing time by up to 14% and instruction counts by up to 24% on large bundles. The new architecture also paves the way for JavaScript-authored transform plugins that run at native speed, with loader support expected in Rspack 2.4 or 2.5.
The release targets memory pressure, a real problem when multiple build processes run in parallel. Peak RSS drops 27% to 36% across build and dev scenarios, and a new allocative-based snapshot tool helps pinpoint hotspots. SplitChunks gains a dedupDepth option (default on in production) that found 2.4% to 9.9% Brotli-size savings in two large real projects, plus minRemainingSize to avoid tiny leftover chunks.
A redesigned experimental cache cuts disk usage by about 79%, defers writes to idle time, and separates dev and production caching. Loader-level caching is particularly effective: babel-loader with 10,000 modules drops from 63.8s to 11.2s. A new codeFilter skips loader calls when source doesn't match a regex, cutting a 622ms build to 481ms when only 10% of modules need transformation. CSS improvements include standalone style entries, external resource handling, and rspackIgnore comments.
SWC Next's flat ESTree AST is the key architectural bet: it avoids serialization overhead between Rust and JavaScript, which is what makes JavaScript-authored transform plugins viable at native speeds.
The new cache design directly addresses the pain of parallel builds—deferring writes and separating dev/prod caches is a pragmatic fix for teams running many dev servers, not just a micro-optimization.
codeFilter is a cheap but effective win because every JavaScript loader call in Rspack crosses a Rust/JavaScript boundary, so skipping calls based on source content pays off quickly on large codebases.
The memory reductions (up to 36%) align with the tighter AST layout from SWC Next, suggesting the parser migration is doing more than just speeding up parsing—it's shrinking the whole build footprint.
The ecosystem updates show the Rstack team is consolidating around Rsbuild as the central build tool, with Rslib reaching 1.0 and Rsdoctor adding AI-assisted analysis, all while keeping webpack compatibility a priority.