# rspack changelog > rspack release notes. - Vendor: rspack - Category: Developer Tools - Official site: https://rspack.rs/ - Tracked by: What's New (https://whatsnew.fyi/product/rspack) - Harvested from: GitHub (web-infra-dev/rspack) - Entries below: 11 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v2.1.7 - Date: 2026-07-29 - Version: v2.1.7 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.7 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.7 > **Notice:** The `import.meta.env` experimental feature introduced in Rspack 2.1.6 has been removed in Rspack 2.1.7. ##### What's Changed ###### Performance 🚀 * perf: share source code across diagnostics by @hardfist in https://github.com/web-infra-dev/rspack/pull/14967 ###### Bug Fixes 🐞 * fix: revert "feat: support import.meta.env" by @intellild in https://github.com/web-infra-dev/rspack/pull/14975 * fix(binding): release module graph connection wrappers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14965 ###### Other Changes * chore: release version 2.1.6 by @SyMind in https://github.com/web-infra-dev/rspack/pull/14966 **Full Changelog**: https://github.com/web-infra-dev/rspack/compare/v2.1.6...v2.1.7 ### v2.1.6 - Date: 2026-07-28 - Version: v2.1.6 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.6 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.6 ##### What's Changed ###### New Features 🎉 * feat: support import.meta.env by @intellild in https://github.com/web-infra-dev/rspack/pull/14483 ###### Performance 🚀 * perf: cache module concatenation analysis across roots by @ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14832 * perf: reuse module concatenation search state by @ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14833 * perf: reduce module concatenation hot-path overhead by @ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14834 ###### Bug Fixes 🐞 * fix: materialize namespace object for concatenated modules by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14882 * fix: parse preserved createRequire arguments by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14813 * fix: invalidate module hashes when assigning deterministic and natural ids by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14878 * fix: disable incremental chunk assets for entry fullhash filenames by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14890 * fix: propagate asset emit errors by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14891 * fix(asset): avoid JavaScript output for URL-only assets by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14885 * fix(rslib): avoid worker external facade in bundleless output by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14900 * fix: execute worker entry modules in modern-module output by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14876 * fix(cli): preserve defineConfig inference by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14924 * fix(swc-loader): preserve structured swc diagnostics by @SyMind in https://github.com/web-infra-dev/rspack/pull/14921 * fix: respect DllPlugin context for concatenated modules by @hardfist in https://github.com/web-infra-dev/rspack/pull/14923 * fix(ci): resolve the binary-size base for stacked PRs by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14903 * fix(cache): scope maxVersions by compiler using compilerPath by @hardfist in https://github.com/web-infra-dev/rspack/pull/14954 ###### Refactor 🔨 * refactor(esm-library): remove redundant module marking by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14875 * refactor(runtime): collect runtime module variables from templates by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14917 * refactor(runtime): simplify modern-module output by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14741 ###### Document 📖 * docs: recommend TypeScript 7 for ts-checker-rspack-plugin by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14901 * docs: refresh Rstack slogan by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14928 * docs: mention Vue DevTools integration by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14932 * docs: clarify resolve.modules behavior by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14953 * docs: fix formatting in split-chunks-plugin.mdx by @davidjb in https://github.com/web-infra-dev/rspack/pull/14963 ###### Other Changes * chore(deps): update dependency @module-federation/runtime-tools to v2.8.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14848 * chore(deps): update rust crate either to 1.16.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14693 * test(module-concat): add concatenation benchmark baselines by @@ScriptedAlchemy in https://github.com/web-infra-dev/rspack/pull/14831 * chore(ci): upload ci-profile binary size from main CI by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14868 * chore(deps): upgrade Rslib to 1.0.0-beta.1 by @Timeless0911 in https://github.com/web-infra-dev/rspack/pull/14925 * chore(deps): update patch npm dependencies by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/148 _[Truncated at 4000 characters — full notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.6]_ ### v2.1.5 - Date: 2026-07-21 - Version: v2.1.5 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.5 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.5 ##### What's Changed ###### Bug Fixes 🐞 * fix: respect runtime mode in mf identifiers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14782 * fix(rsc): preserve multiple referenced client exports by @SyMind in https://github.com/web-infra-dev/rspack/pull/14794 * fix: preserve createRequire().resolve with literal import.meta.url when requireResolve is disabled by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14783 * fix(css): preserve inline match resource imports by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14803 * fix: short-circuit optional import.meta calls by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14806 * fix(rsc): preserve exports for dynamic client references by @SyMind in https://github.com/web-infra-dev/rspack/pull/14807 * fix(stats): avoid live chunk access when serializing stale stats by @SyMind in https://github.com/web-infra-dev/rspack/pull/14808 * fix(rstest): register hoisted mocks before importActual imports by @fi3ework in https://github.com/web-infra-dev/rspack/pull/14810 * fix(watcher): run FsWatcher on a single owner task to fix concurrent &mut races by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14829 * fix(worker): add module type when options are omitted in module output by @elecmonkey in https://github.com/web-infra-dev/rspack/pull/14874 * fix: include output path in chunk render cache keys by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14877 * fix: support real content hash update hooks by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14660 ###### Refactor 🔨 * refactor(binding): remove compilation pointer from async dependency block by @SyMind in https://github.com/web-infra-dev/rspack/pull/14797 * refactor(core): improve referenced export data struct by @SyMind in https://github.com/web-infra-dev/rspack/pull/14796 ###### Other Changes * chore(skills): add webpack test gap diff script by @intellild in https://github.com/web-infra-dev/rspack/pull/14805 * chore: update Rsdoctor diff action version by @yifancong in https://github.com/web-infra-dev/rspack/pull/14812 * chore(deps): update napi by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14837 * chore(deps): update dependency @rslint/core to v0.7.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14849 * chore: update simd-json and value-trait to fix stringify issue for CPUs without AVX/SSE4 capabilities by @intellild in https://github.com/web-infra-dev/rspack/pull/14828 * chore: add rspack perf codspeed goal skill by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14550 **Full Changelog**: https://github.com/web-infra-dev/rspack/compare/v2.1.4...v2.1.5 ### v2.1.4 - Date: 2026-07-14 - Version: v2.1.4 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.4 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.4 ##### Highlights ###### Fine-grained `import.meta` parser options `module.parser.javascript.importMeta` now accepts an object so each known `import.meta` property can be configured independently, on top of the existing `true` / `false` / `'preserve-unknown'` values. Properties set to `false` are preserved for runtime evaluation, omitted properties keep their default behavior, and unknown properties are preserved. Both webpack-compatible keys (`dirname`, `filename`, `main`, `url`, `webpack`, `webpackContext`) and Rspack-specific keys (`rspackHash`, `rspackPublicPath`, `glob`, ...) are supported. ```js title="rspack.config.mjs" export default { module: { parser: { javascript: { importMeta: { // keep `import.meta.url` for runtime evaluation url: false, // keep the compile-time replacement of `import.meta.webpack` webpack: true, }, }, }, }, }; ``` ###### Static worker URL output `module.parser.javascript.worker` now accepts an object form with `alias` and `url`, alongside the existing `boolean` and `string[]` forms. With `url: 'new-url-relative'` and `output.module` enabled, Rspack emits a static `new URL()` expression for `new Worker(new URL(..., import.meta.url))` instead of runtime code, honoring `output.publicPath` and `output.workerPublicPath`. ```js title="rspack.config.mjs" export default { output: { module: true, chunkFilename: '[name].bundle.js', }, module: { parser: { javascript: { worker: { url: 'new-url-relative', }, }, }, }, }; ``` ```js new Worker(new URL('./worker.js', import.meta.url)); // would become 👇 new Worker(new URL('./worker.bundle.js', import.meta.url)); ``` ##### What's Changed ###### New Features 🎉 * feat(runtime): support logical assignment for chunk loading global by @fireairforce in https://github.com/web-infra-dev/rspack/pull/14655 * feat: support persistent cache for module hashes by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14717 * feat: support static worker new URL output by @intellild in https://github.com/web-infra-dev/rspack/pull/14728 * feat: support fine-grained import.meta parser options by @intellild in https://github.com/web-infra-dev/rspack/pull/14631 ###### Performance 🚀 * perf(swc): enable parallel wasmtime compilation by @hardfist in https://github.com/web-infra-dev/rspack/pull/14716 * perf(hook): reduce hook macro expansion size and optimize performance by @intellild in https://github.com/web-infra-dev/rspack/pull/14633 * perf: optimize ESM linking passes by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14758 * perf: deduplicate repeated dynamic reexport code by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14748 ###### Bug Fixes 🐞 * fix(ci): pick binary-size base by build-triggering commit by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14715 * fix: clean up runtime global rendering by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14735 * fix(binding): clean up chunk wrappers when compiler is GCed by @SyMind in https://github.com/web-infra-dev/rspack/pull/14736 * fix: enable runtime mode esm context imports by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14740 * fix: revert Module Federation runtime identifiers by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14761 * fix(fs): include paths in native filesystem errors by @hardfist in https://github.com/web-infra-dev/rspack/pull/14760 * fix: respect RSPACK_BINDING in loader workers by @hardfist in https://github.com/web-infra-dev/rspack/pull/14775 * fix: invalidate the target compiler for lazy compilation by @Kanary-channelio in https://github.com/web-infra-dev/rspack/pull/14781 ###### Refactor 🔨 * refactor(binding): avoid unsafe compilation access in chunk and module by @SyMind in https://github.com/web-infra- _[Truncated at 4000 characters — full notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.4]_ ### v2.1.3 - Date: 2026-07-07 - Version: v2.1.3 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.3 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.3 ##### What's Changed ###### New Features 🎉 * feat: add name/value accessors to ESMExportSpecifierDependency ([#14641](https://github.com/web-infra-dev/rspack/pull/14641) by @yashwanth195) * feat(core): expose the real Chunk instance to filename functions ([#14549](https://github.com/web-infra-dev/rspack/pull/14549) by @JSerFeng) ###### Performance 🚀 * perf: erase js tap storage types to reduce binary size ([#14636](https://github.com/web-infra-dev/rspack/pull/14636) by @intellild) * perf: build rspack source maps directly ([#14621](https://github.com/web-infra-dev/rspack/pull/14621) by @intellild) * perf: optimize module hash creation ([#14654](https://github.com/web-infra-dev/rspack/pull/14654) by @LingyuCoder) * perf(mangle_exports): pre-size per-module maps and vecs ([#14705](https://github.com/web-infra-dev/rspack/pull/14705) by @stormslowly) ###### Bug Fixes 🐞 * fix: update runtime context during hot updates ([#14644](https://github.com/web-infra-dev/rspack/pull/14644) by @LingyuCoder) * fix(concatenation): inline-value check must precede deferred pure checks ([#14663](https://github.com/web-infra-dev/rspack/pull/14663) by @guru-irl) * fix(css): skip re-applying unchanged CSS during HMR ([#14580](https://github.com/web-infra-dev/rspack/pull/14580) by @stormslowly) * fix(asset): preserve asset bytes for binary files ([#14670](https://github.com/web-infra-dev/rspack/pull/14670) by @hardfist) * fix(css): dedupe link HMR stylesheets ([#14666](https://github.com/web-infra-dev/rspack/pull/14666) by @intellild) * fix(mf): emit manifest assets with forward-slash names on Windows ([#14667](https://github.com/web-infra-dev/rspack/pull/14667) by @johncarmack1984) * fix(esm_library): unwrap dynamic source-phase imports in modern-module output ([#14673](https://github.com/web-infra-dev/rspack/pull/14673) by @elecmonkey) * fix(esm_library): preserve static source-phase external bindings ([#14674](https://github.com/web-infra-dev/rspack/pull/14674) by @elecmonkey) * fix(bench): pin glibc string-func dispatch to stabilize simulation benches ([#14704](https://github.com/web-infra-dev/rspack/pull/14704) by @stormslowly) * fix(css): distinguish css wrapper sourcemap names ([#14675](https://github.com/web-infra-dev/rspack/pull/14675) by @intellild) * fix(binding): keep path data chunk compatible ([#14698](https://github.com/web-infra-dev/rspack/pull/14698) by @JSerFeng) ###### Refactor 🔨 * refactor: use rspack runtime module prefix ([#14630](https://github.com/web-infra-dev/rspack/pull/14630) by @LingyuCoder) * refactor: split content hash from std Hash ([#14384](https://github.com/web-infra-dev/rspack/pull/14384) by @intellild) * refactor: rename hash objects for clearer semantics ([#14642](https://github.com/web-infra-dev/rspack/pull/14642) by @intellild) * refactor: use rspack scheme for source map defaults ([#14635](https://github.com/web-infra-dev/rspack/pull/14635) by @LingyuCoder) * refactor(runtime): collect runtime writes from ejs define ([#14651](https://github.com/web-infra-dev/rspack/pull/14651) by @LingyuCoder) * refactor(napi): remove napi tokio runtime dependency ([#14696](https://github.com/web-infra-dev/rspack/pull/14696) by @hardfist) ###### Other Changes * test: register misc bundle benchmark ([#14632](https://github.com/web-infra-dev/rspack/pull/14632) by @hardfist) * chore(release): stream per-package publish output ([#14585](https://github.com/web-infra-dev/rspack/pull/14585) by @stormslowly) * chore(deps): update github-actions ([#14638](https://github.com/web-infra-dev/rspack/pull/14638) by @renovate[bot]) * ci: replace rust-cache with sccache (TOS) on self-hosted runners ([#14567](https://github.com/web-infra-dev/rspack/pull/14567) by @stormslowly) * ci: reset lynx-infra/cache action to d6bd70b ([#14646](https://github.com/web-infra-dev/rspack/pull/14646) by @stormslowly) * chore(ci): run binary size limit on linux mini runner ([#14648](https://github.com/web-infra-dev/rspack/pul _[Truncated at 4000 characters — full notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.3]_ ### v2.1.2 - Date: 2026-06-30 - Version: v2.1.2 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.2 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.2 ##### What's Changed ##### Highlights 💡 ###### Support `import.meta` style module variables

Rspack now exposes more module variables through import.meta, which aligns better with the ESM specification than CommonJS-style injected globals. When authoring ESM modules, import.meta is now the recommended way to access these runtime values.

The newly supported import.meta properties are:

New import.meta API | Existing runtime variable -- | -- `import.meta.rspackPublicPath` | `__webpack_public_path__` `import.meta.rspackBaseUri` | `__webpack_base_uri__` `import.meta.rspackShareScopes` | `__webpack_share_scopes__` `import.meta.rspackInitSharing` | `__webpack_init_sharing__` `import.meta.rspackNonce` | `__webpack_nonce__` `import.meta.rspackUniqueId` | `__rspack_unique_id__` `import.meta.rspackVersion` | `__rspack_version__` `import.meta.rspackHash` | `__webpack_hash__` ###### New Features 🎉 * feat: support `import.meta` style module variables ([#14539](https://github.com/web-infra-dev/rspack/pull/14539) by @LingyuCoder) ###### Performance 🚀 * perf: deduplicate runtime module macro glue ([#14620](https://github.com/web-infra-dev/rspack/pull/14620) by @intellild) * perf: avoid cloning side effects artifact in module concatenation ([#14622](https://github.com/web-infra-dev/rspack/pull/14622) by @hardfist) ###### Bug Fixes 🐞 * fix(browser): inject runtime require into browser MF runtime ([#14590](https://github.com/web-infra-dev/rspack/pull/14590) by @CPunisher) * fix(ci): build wasm in release debug so the wasm binding gets published ([#14614](https://github.com/web-infra-dev/rspack/pull/14614) by @stormslowly) * fix(rslib): preserve import phase in dynamic import external rendering ([#14615](https://github.com/web-infra-dev/rspack/pull/14615) by @elecmonkey) * fix: empty references export for cjs and dynamic import tree shaking ([#14629](https://github.com/web-infra-dev/rspack/pull/14629) by @ahabhgk) ###### Document 📖 * docs: document asset/resource emit generator option ([#14602](https://github.com/web-infra-dev/rspack/pull/14602) by @chenjiahan) * docs: document json parser parse option ([#14606](https://github.com/web-infra-dev/rspack/pull/14606) by @chenjiahan) * docs: document more rule use options ([#14610](https://github.com/web-infra-dev/rspack/pull/14610) by @chenjiahan) * docs: update module variable docs for import.meta ([#14618](https://github.com/web-infra-dev/rspack/pull/14618) by @LingyuCoder) * docs: enable Rspress anchor checks ([#14627](https://github.com/web-infra-dev/rspack/pull/14627) by @chenjiahan) ###### Other Changes * chore(deps): update patch npm dependencies ([#14595](https://github.com/web-infra-dev/rspack/pull/14595) by @renovate[bot]) * chore(deps): update dependency @babel/preset-react to ^7.29.7 ([#14597](https://github.com/web-infra-dev/rspack/pull/14597) by @renovate[bot]) * chore(deps): update dependency @ast-grep/napi to ^0.44.0 ([#14596](https://github.com/web-infra-dev/rspack/pull/14596) by @renovate[bot]) * chore(deps): update dependency @rsbuild/core to v2.1.1 ([#14603](https://github.com/web-infra-dev/rspack/pull/14603) by @renovate[bot]) * chore(deps): update dependency @rspack/dev-server to ^2.1.0 ([#14604](https://github.com/web-infra-dev/rspack/pull/14604) by @renovate[bot]) * chore(deps): update dependency @shikijs/transformers to ^4.3.0 - autoclosed ([#14605](https://github.com/web-infra-dev/rspack/pull/14605) by @renovate[bot]) * chore(deps): update dependency mermaid to ^11.16.0 ([#14607](https://github.com/web-infra-dev/rspack/pull/14607) by @renovate[bot]) * chore(deps): update dependency ts-checker-rspack-plugin to ^1.5.1 ([#14608](https://github.com/web-infra-dev/rspack/pull/14608) by @renovate[bot]) * chore(deps): update dependency @rsbuild/plugin-sass to v2 ([#14609](https://github.com/web-infra-dev/rspack/pull/14609) by @renovate[bot]) * chore: remove o _[Truncated at 4000 characters — full notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.2]_ ### v2.1.1 - Date: 2026-06-27 - Version: v2.1.1 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.1 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.1 ##### What's Changed ###### New Features 🎉 * feat(rsdoctor): add dependencyId and loc to export usage edges by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14577 ###### Performance 🚀 * perf(devtool): add persistent cache for SourceMapDevToolPlugin by @SyMind in https://github.com/web-infra-dev/rspack/pull/14473 ###### Bug Fixes 🐞 * fix(css): add guard for link.parentNode in css runtime by @BeiyanYunyi in https://github.com/web-infra-dev/rspack/pull/14566 * fix: revert cjs export assignment side effects optimization by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14600 ###### Other Changes * docs: v2.1 release blog by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14527 * refactor(runtime): structure runtime requirements by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14574 * chore(deps): update dependency @rslint/core to v0.6.3 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14594 * chore(deps): update dependency @module-federation/runtime-tools to v2.6.0 by @renovate[bot] in https://github.com/web-infra-dev/rspack/pull/14598 ##### New Contributors * @BeiyanYunyi made their first contribution in https://github.com/web-infra-dev/rspack/pull/14566 **Full Changelog**: https://github.com/web-infra-dev/rspack/compare/v2.1.0...v2.1.1 ### v2.1.0 - Date: 2026-06-26 - Version: v2.1.0 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.0 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.0 ##### What's Changed ##### 🎉 See [Announcing Rspack 2.1](https://rspack.rs/blog/announcing-2-1) for more details. ###### New Features 🎉 * feat: expose module error JS API by @SyMind in https://github.com/web-infra-dev/rspack/pull/14351 * feat(cache): log persistent cache read and write timings by @hardfist in https://github.com/web-infra-dev/rspack/pull/14314 * feat(module_graph): expose `getProvidedExports()` to JS API by @logonoff in https://github.com/web-infra-dev/rspack/pull/14349 * feat: support drop inactive branch dependencies for member expr by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14382 * feat(runtime): introduce experimental.runtimeMode by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14254 * feat: support branch guarded export presence for `in` on ESM imports by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14426 * feat: bump swc to support react compiler by @CPunisher in https://github.com/web-infra-dev/rspack/pull/14435 * feat(runtime): runtime internals of rspack runtime mode by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14427 * feat(rsdoctor): expose export usage graph by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14291 * feat: enable pureFunctions by default by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14465 * feat(cache): add maxAge and maxGenerations for persistent cache cleanup by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/14296 * feat: make persistent cache max generations default to 3 by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14534 * feat: rename persistent cache `maxGenerations` to `maxVersions` by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14545 * feat: harden persistent cache version cleanup with typed version by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14552 * feat: support riscv64 targets by @swwind in https://github.com/web-infra-dev/rspack/pull/14447 * feat(cache): make stale version cleanup fire-and-forget by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14564 ###### Performance 🚀 * perf: remove serde json by @SyMind in https://github.com/web-infra-dev/rspack/pull/14272 * perf: use mask intersects instead of flag iteration for scope globals by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14353 * perf: add ASCII fast path for dependency location column computation by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14355 * perf: force DFA automaton for real content hash scanning by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14356 * perf(core): reduce memcpy overhead by @hardfist in https://github.com/web-infra-dev/rspack/pull/14381 * perf: reduce flag dependency usage key allocations by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14417 * perf: reduce build chunk graph preparation work by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14421 * perf(sources): avoid cloning source maps with borrowed fields by @SyMind in https://github.com/web-infra-dev/rspack/pull/14380 * perf: optimize module concatenation traversal by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14422 * perf(loader-runner): cache esm loader imports by @hardfist in https://github.com/web-infra-dev/rspack/pull/14434 * perf(core): optimize resource parsing by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14456 * perf(ci): drop redundant cargo check from rust CI by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14461 * perf: avoid JavaScriptTracer overhead when tracing is disabled by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14468 * perf(loader-runner): reduce loader object construction overhead by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14477 * perf: optimize compilation entrypoints getter by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14485 * perf: redu _[Truncated at 4000 characters — full notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.0]_ ### v2.1.0-rc.0 - Date: 2026-06-23 - Version: v2.1.0-rc.0 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.0-rc.0 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.0-rc.0 ##### What's Changed ###### New Features 🎉 * feat: make persistent cache max generations default to 3 by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14534 ###### Performance 🚀 * perf: optimize compilation entrypoints getter by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14485 * perf: reduce asset wrapper overhead by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14487 * perf(deps): bump camino to 1.2.3 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14519 * perf(ci): drop debuginfo from the whole ci profile by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14528 ###### Bug Fixes 🐞 * fix(types): align wasm loading types by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14506 * fix(split-chunks): align max size grouping with webpack by @intellild in https://github.com/web-infra-dev/rspack/pull/14481 * fix(rstest): fallback to automock for missing manual mocks by @9aoy in https://github.com/web-infra-dev/rspack/pull/14418 * fix(css): preserve undeclared css module idents by @intellild in https://github.com/web-infra-dev/rspack/pull/14497 * fix(mf): stabilize consume shared runtime output by @2heal1 in https://github.com/web-infra-dev/rspack/pull/14532 * fix(cache): default context_dependencies snapshot strategy to timestamp by @hardfist in https://github.com/web-infra-dev/rspack/pull/14490 ###### Refactor 🔨 * refactor: merge webpack api parser plugins by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14529 ###### Document 📖 * docs: fix duplicate createRequire parser docs by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14486 * docs: update React Compiler guide by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14496 * docs: remove redundant javascript/auto type examples by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14499 * docs: update ESM config examples by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14505 * docs: fix entry config docs by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14514 * docs: fix module config types by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14515 * docs: fix resolve config types by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14516 * docs: fix stats config types by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14518 * docs: document dev server options by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14523 * docs: move cache migration guide by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14535 * docs: improve cache option documentation by @chenjiahan in https://github.com/web-infra-dev/rspack/pull/14540 ###### Other Changes * chore: release v2.1.0-beta.0 by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14480 * chore: remove codspeed js bench case by @SyMind in https://github.com/web-infra-dev/rspack/pull/14489 * test(tree-shaking): lock in pureFunctions innerGraph deferred-pure-check behavior by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14488 * chore(ci): pause portable cache check by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14492 * chore(ci): align hookTimeout with testTimeout to fix flaky afterAll close timeout by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14498 * chore(deps): update dependency http-proxy-middleware to v4.1.1 [security] by @renovate 🤖 in https://github.com/web-infra-dev/rspack/pull/14500 * chore(deps): update dependency lint-staged to v17 by @renovate 🤖 in https://github.com/web-infra-dev/rspack/pull/14504 * chore(deps): update pnpm to v11.8.0 by @renovate 🤖 in https://github.com/web-infra-dev/rspack/pull/14503 * chore(deps): update dependency @rslib/core to ^0.23.0 by @renovate 🤖 in https://github.com/web-infra-dev/rspack/pull/14501 * chore(deps): remove unused axios dependency by @chenjiahan in https://github.com/web-infra-dev/rspac _[Truncated at 4000 characters — full notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.0-rc.0]_ ### v2.1.0-beta.0 - Date: 2026-06-18 - Version: v2.1.0-beta.0 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.0-beta.0 - Permalink: https://whatsnew.fyi/product/rspack/releases/v2.1.0-beta.0 ##### Highlights 💡 ###### Support React Compiler in `builtin:swc-loader` React projects can now use React Compiler directly through Rspack's built-in SWC loader. See the [React Compiler guide](https://rspack.rs/guide/tech/react#using-builtinswc-loader) for details. ```js export default { module: { rules: [ { test: /\.[cm]?[jt]sx?$/, loader: 'builtin:swc-loader', options: { jsc: { transform: { reactCompiler: true, }, }, }, }, ], }, }; ``` ###### Side-effect-free function analysis by default Rspack's side-effect-free function analysis is now enabled by default in production builds. It can detect pure function calls through the `#__NO_SIDE_EFFECTS__` notation and `pureFunctions` configuration, including exported functions across module boundaries. When the returned value is unused, Rspack can remove the call more reliably and improve tree shaking results without extra configuration. See [`experiments.pureFunctions`](https://rspack.rs/config/experiments#experimentspurefunctions) for details. ```js // lib.js /*@__NO_SIDE_EFFECTS__*/ export function call() { console.log('hi') } // barrel.js import { call } from './lib' const value = call() // if value is unused, call can be removed export { value } ``` image ##### What's Changed ###### New Features 🎉 * feat: expose module error JS API by @SyMind in https://github.com/web-infra-dev/rspack/pull/14351 * feat(cache): log persistent cache read and write timings by @hardfist in https://github.com/web-infra-dev/rspack/pull/14314 * feat(module_graph): expose `getProvidedExports()` to JS API by @logonoff in https://github.com/web-infra-dev/rspack/pull/14349 * feat: support drop inactive branch dependencies for member expr by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14382 * feat(runtime): introduce experimental.runtimeMode by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14254 * feat: support branch guarded export presence for `in` on ESM imports by @ahabhgk in https://github.com/web-infra-dev/rspack/pull/14426 * feat: bump swc to support react compiler by @CPunisher in https://github.com/web-infra-dev/rspack/pull/14435 * feat(runtime): runtime internals of rspack runtime mode by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14427 * feat(rsdoctor): expose export usage graph by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14291 * feat: enable pureFunctions by default by @JSerFeng in https://github.com/web-infra-dev/rspack/pull/14465 * feat(cache): add maxAge and maxGenerations for persistent cache cleanup by @matthewdavis-oai in https://github.com/web-infra-dev/rspack/pull/14296 ###### Performance 🚀 * perf: remove serde json by @SyMind in https://github.com/web-infra-dev/rspack/pull/14272 * perf: use mask intersects instead of flag iteration for scope globals by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14353 * perf: add ASCII fast path for dependency location column computation by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14355 * perf: force DFA automaton for real content hash scanning by @stormslowly in https://github.com/web-infra-dev/rspack/pull/14356 * perf(core): reduce memcpy overhead by @hardfist in https://github.com/web-infra-dev/rspack/pull/14381 * perf: reduce flag dependency usage key allocations by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14417 * perf: reduce build chunk graph preparation work by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/14421 * perf(sources): avoid cloning source maps with borrowed fields by @SyMind in https://github.com/web-infra-dev/rspack/pull/14380 * perf: optimize module concatenation traversal by @Lingy _[Truncated at 4000 characters — full notes: https://github.com/web-infra-dev/rspack/releases/tag/v2.1.0-beta.0]_ ### v1.7.12 - Date: 2026-06-17 - Version: v1.7.12 - Original notes: https://github.com/web-infra-dev/rspack/releases/tag/v1.7.12 - Permalink: https://whatsnew.fyi/product/rspack/releases/v1.7.12 ##### What's Changed ###### Bug Fixes 🐞 * fix: align timing logger with webpack phase boundaries by @hardfist in https://github.com/web-infra-dev/rspack/pull/13559 ###### Document Updates 📖 * docs(v1): add algolia site verification meta by @SoonIter in https://github.com/web-infra-dev/rspack/pull/13818 * docs: use rspack-v1 algolia index on v1 site by @SoonIter in https://github.com/web-infra-dev/rspack/pull/13924 ###### Other Changes * chore: release 1.7.11 by @LingyuCoder in https://github.com/web-infra-dev/rspack/pull/13550 * chore(backport): use OIDC to publish crates by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13563 * chore(release): crate 0.7.11 by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13570 * chore: change CodSpeed baseline branch from main to v1.x by @stormslowly in https://github.com/web-infra-dev/rspack/pull/13573 * fix: correct mf manifest expose assets by @2heal1 in https://github.com/web-infra-dev/rspack/pull/14327 * ci: pin release artifact download action by @2heal1 in https://github.com/web-infra-dev/rspack/pull/14459 **Full Changelog**: https://github.com/web-infra-dev/rspack/compare/v1.7.11...v1.7.12