mrkeyoor.com_
Thu 17 Sept 17:41 UTC
Dev Toolsevaluationupdated 17 Sept 2026

rspack review

Rspack is a Rust-based web bundler: it turns application modules into files a browser can load while keeping much of webpack 5's configuration shape. It is aimed at teams that want to change the bundler underneath an existing webpack setup without redesigning the whole build system.

Verdict

Our sandbox installed Rspack's 1,230-package contributor tree in 24 seconds, but the checkout exposed no build or test target for our generic runner. Use Rspack when a webpack 5 codebase needs a new bundling engine and your team can test every loader, plugin, cache setting, and production artifact. A new small application with no webpack history has less reason to absorb that migration work.

We ran it

Lab card: what happened when we ran rspackScreenshot of rspack (rspack.rs)
Install✓ · 24s1230 packages · 884 MB
Buildn/ano build script
Testsn/ano test script
Repo22655 files~691,633 lines of source · 68.8 MB · 24 CI workflows · tests dir

Answers from our run

Does rspack build from source?

Dependencies installed in 24 seconds (1230 packages), and the project has no separate build step. We cloned commit 1032815 into a clean Debian container with 3 CPUs and no project-specific setup.

Does rspack have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use rspack?

Projects pinned below Node.js 20.19 or 22.12: Rspack 2 requires one of those branches or newer.

What are the alternatives to rspack?

webpack, Vite, Rolldown. Our sandbox installed Rspack's 1,230-package contributor tree in 24 seconds, but the checkout exposed no build or test target for our generic runner.

Setup3/524-second install; root build and test targets were absent
Docs5/5Specific migration, platform, plugin, and cache guidance
Community5/512,921 stars and same-day push, release, and issue activity
Maturity4/5Version 2 is active; compatibility and reproducibility need checks

Who it’s for

Teams with a webpack 5 application and enough build friction to justify a measured migration.
Frontend platform groups maintaining loaders, plugins, Module Federation, or several related applications.
Developers who want Rust-backed parsing and bundling while keeping a JavaScript configuration file.
Contributors comfortable working in a large Rust and pnpm monorepo.

Who it’s NOT for

Projects pinned below Node.js 20.19 or 22.12: Rspack 2 requires one of those branches or newer.
Webpack 4 applications seeking a direct swap: the migration guide is written for webpack 5 and sends older projects through a webpack 5 migration first.
Builds that depend on unsupported webpack CLI flags, resolve.plugins, or private webpack/lib/* imports: the official guide calls for replacements or keeping webpack temporarily.
Release pipelines that require proven byte-for-byte output across repeated builds: open issue 14089 reports nondeterministic variable names from the built-in SWC minimizer.
Contributors expecting one obvious root check: our runner installed 1,230 packages, then found no build or test script or target to execute.

Setup reality

Our sandbox installed the contributor checkout in 24 seconds, adding 1,230 packages and using 884 MB on disk. The repository itself was 68.8 MB, with 22,655 files and about 691,633 source lines. The generic runner found no build or test script or target, so both steps were skipped rather than passed.

Using Rspack in an application is smaller in scope than building the repository. Rspack 2 requires Node.js 20.19+ or 22.12+, and the quick start installs @rspack/core with the CLI. It needs no hosted account or API key. Native bindings cover listed desktop and Linux targets, with a Wasm package as the fallback.

Contributing is a different job. This is a pnpm workspace monorepo with 24 CI workflow files and a tests directory, yet its checks are not exposed as a single generic root build or test target. Plan for package-specific commands and the project's contribution guide instead of assuming pnpm build and pnpm test are the right entry points.

Rspack 2 is for webpack 5-shaped builds

Rspack v2 keeps the job and much of the vocabulary of webpack 5. You provide entries, loaders, plugins, output rules, and optimization settings, then Rspack produces browser assets through a Rust core exposed to JavaScript. That familiar surface is the reason to consider it. A team can investigate a new bundling engine without first replacing every build concept or forcing application developers into a different configuration style.

The repository shows how much engineering sits behind that promise. Our measured checkout at commit 1032815 contained 22,655 files, roughly 691,633 lines of source, and 68.8 MB before dependencies. It includes Rust crates, JavaScript packages, fixtures, and monorepo workspaces. Application users install published packages, so they do not inherit that entire source tree. Contributors and teams debugging native behavior should expect a large systems project rather than a small command-line wrapper.

Webpack compatibility stops at specific flags and plugins

Rspack v2's official webpack 5 migration guide names concrete edits. Rspack CLI does not accept webpack's --progress, --color, --bail, or --output-pathinfo flags. Filesystem cache settings use a different shape, resolve.plugins is unsupported, and several familiar packages have Rspack replacements. That is a manageable checklist, but it rules out treating the change as a package-name substitution.

Plugin behavior deserves a trial against your own build. The guide says most webpack loaders and community plugins work, while also directing users to replace tools such as copy-webpack-plugin, mini-css-extract-plugin, and tsconfig-paths-webpack-plugin. The repository has 24 CI workflow files and a tests directory, evidence of broad internal checking. Neither fact proves that a private loader or a plugin importing webpack/lib/* will behave the same. Keep webpack installed until those dependencies are replaced or verified.

What happened when we ran it

Our sandbox installed commit 1032815 in 24 seconds. Pnpm added 1,230 packages, and the resulting dependency tree occupied 884 MB on disk. The run used an unprivileged lab-node:22 container with 3 CPUs, 8 GB of RAM, and no secrets. Installation succeeded without a reported error, so obtaining the contributor dependencies worked in that clean environment.

Build and tests did not fail. They were skipped because our generic runner found no build script or target and no test script or target at the repository entry point. That distinction matters: this run provides no passing build or test evidence. The checkout does contain a tests directory, and 24 CI workflows signal that maintainers use more specific automation. A contributor needs the documented package-level workflow instead of guessing that the usual two pnpm commands cover the monorepo.

Thirteen native targets still leave a Wasm fallback

Rspack v2 documents 13 native target combinations across macOS, Linux, and Windows. The list includes glibc and musl Linux builds plus several architectures. For a platform without a native binding, the quick start points to @rspack/binding-wasm32-wasi. That fallback broadens where Rspack can start, though a team should test its own workload rather than assume the Wasm path behaves or performs like a native package.

Runtime requirements can force changes before bundler configuration does. Version 2 needs Node.js 20.19+ or 22.12+, while version 1 supports an older Node line. The migration guide recommends keeping Node consistent across developer machines, CI, and deployment builds. That requirement is easy to miss when the application itself still runs on an older runtime. The 884 MB contributor install also argues for checking CI cache and workspace budgets before moving repository-level work onto small runners.

A same-day v2.2.6 release shows active maintenance

GitHub published Rspack v2.2.6 on September 17, 2026, and the repository was pushed again that day. The release contains loader, source-map, Module Federation, watch, and code-splitting work. GitHub also reported 12,921 stars and 224 open issues and pull requests. The combined count is a queue of work and discussion, not a count of confirmed bugs.

Current activity does not remove adoption risk. Open issue 14089 reports different minified variable names across repeated production builds, which matters to content-addressed caches. Another open report describes a pnpm symlink case where a nested TypeScript configuration cannot be resolved. With 1,230 packages in our checkout and a fast-moving v2 release line, pin the toolchain and compare repeated production output before making it the only build path.

Choose Rspack when webpack compatibility pays for the migration

An 884 MB contributor dependency tree and skipped root checks make Rspack look heavier from inside the repository than it does from an application's package file. That is not a reason to reject it. It is a reason to separate two evaluations: whether @rspack/core can build your app correctly, and whether your team wants to contribute to or debug the Rust and pnpm monorepo. The first can be a contained branch experiment. The second needs more setup.

Rspack earns a serious trial for a webpack 5 estate with custom loaders, Module Federation, or enough applications to make one migration reusable. Run both bundlers in CI, compare emitted files, exercise watch mode, and remove webpack only after the plugin graph is clean. If you are starting with no webpack assumptions, Vite or Rolldown offers a more direct choice. Our 24-second install says Rspack is easy to fetch. Compatibility testing decides whether it is safe to keep.

Alternatives

ProjectWhat it isPick it when
webpack gh↗The established JavaScript bundler whose configuration and plugin model Rspack follows.pick this instead when exact webpack behavior and compatibility with an existing plugin stack matter more than changing the bundling engine.
Vite gh↗A frontend build tool centered on a quick development server and a simpler application setup.pick this instead when you are starting a new frontend and have no webpack configuration or plugin estate to preserve.
Rolldown gh↗A Rust bundler built around Rollup-compatible concepts and plugins.pick this instead when Rollup or Vite compatibility fits your build better than webpack compatibility.

What people are saying

  1. [github-trending] web-infra-dev/rspack

Sources

  1. Rspack repository and README
  2. Rspack quick start and platform requirements
  3. Rspack webpack migration guide
  4. Rspack v2.2.6 release
  5. Rspack reproducible minification issue 14089
  6. Rspack pnpm tsconfig resolution issue 15717

More dev tools reviews

vitest · swagger-ui · Telegram · termux-app · omnyssh · dora · the whole board →