# 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 }
```
##### 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