Library / SDK
web-infra-dev/rsbuild avatar
web-infra-dev/rsbuild

Rsbuild: A Zero-Config Build Tool That Puts Rspack Within Reach

Fast, extensible build tool for modern web development. Rsbuild English | Portuguese | 简体中文 Rsbuild is a modern build tool for web applications, powered by Rspack.

3,379 stars281 forksTypeScriptMIT

At a glance

What is it?
Rsbuild wraps Rspack with a semantic configuration API and zero-config defaults, aiming to make Rust-based bundling accessible without learning webpack's internals. This review covers its mechanism, setup, plugin compatibility, and where it falls short.
Who is it for?
Adopt Rsbuild if you want Rspack's speed without wrestling with raw webpack configuration, especially if you are starting a new framework-agnostic web app and value artifact stability. Avoid it if you need deep control over the bundler's internals or if your team already has a mature webpack config you don't want to migrate.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem: Rspack's Power, Webpack's Complexity

Rspack is a fast Rust-based bundler, but using it directly means facing the same configuration complexity as webpack. Rsbuild exists to solve that mismatch. It gives developers out-of-the-box build capabilities so they can start web projects with zero configuration. The README is explicit about this goal: to reduce the Rspack learning curve. Who is this for? Teams that want the performance of Rust-based tooling without hiring a webpack specialist. It is also for developers who are tired of wiring up loaders, plugins, and dev servers by hand. The project positions itself as a build tool, not a framework. It does not care whether you use React, Vue, or Svelte. That separation is a deliberate design choice, and it shows in how the plugin system is structured.

How It Works: Rspack Under the Hood, Semantic Config on Top

Rsbuild is powered by Rspack. The README describes it as a modern build tool for web applications, with Rspack doing the actual bundling. On top of that, Rsbuild provides a semantic build configuration API. Instead of writing raw webpack config objects, you use higher-level options that map to common build settings. The documentation mentions integrating SWC for transpilation and Lightning CSS for styling. That means the heavy lifting, parsing, resolving, and code generation, happens in Rust. The configuration layer is thin, but it is what makes the tool approachable. The README also emphasizes stable artifacts. Rsbuild aims to keep development and production builds consistent, and it automatically handles syntax downgrading and polyfill injection. That is a significant promise because many tools produce different behavior between dev and prod. If the artifact stability claim holds, it removes a whole class of debugging headaches.

Getting Started: Commands and Config Keys from the Docs

The README does not include a full quick start, but it points to the official docs at rsbuild.rs. Based on the repository layout and the project's nature, the typical flow is to install @rsbuild/core and run a dev or build command. The README mentions that Rsbuild provides a semantic build configuration API. That means you will likely create an rsbuild.config.ts file with keys like plugins, html, and output. The exact names are not listed in the README, so you should check the v2 docs for the full schema. The plugin system is lightweight, and you can use plugins from the official set or write your own using the template linked in the README. The template is called rsbuild-plugin-template. That is a concrete starting point for anyone who wants to extend the tool. The README also lists Storybook builder powered by Rsbuild, which shows that the configuration surface is flexible enough to support complex integrations.

Plugin Compatibility: The Webpack Safety Net

One of Rsbuild's most interesting claims is that it is compatible with most webpack plugins and all Rspack plugins. That is a bold statement. Webpack plugins interact with the bundler through hooks and APIs. If Rsbuild exposes enough of that interface, then existing community plugins should work without rewriting. The README says you can use existing community or in-house plugins without rewriting code. That is a huge selling point for teams with a legacy webpack setup. But the phrase 'most webpack plugins' is a warning. Not all webpack plugins will work. The compatibility layer is not a guarantee. If you rely on a niche webpack plugin, you need to test it early in your evaluation. The Rspack plugin compatibility is more certain, since Rsbuild is built on Rspack and shares its plugin model. For teams migrating from webpack, this feature could be the difference between a smooth transition and a rewrite.

Framework Agnosticism: A Double-Edged Sword

Rsbuild is not coupled to any frontend UI framework. It supports React, Vue, Svelte, Solid, and Preact through plugins. That is a strength if you want to standardize on one build tool across multiple projects. But it also means you have to find and configure the right plugin for your framework. The README says there are plans to support more UI frameworks from the community. That is a signal that the ecosystem is still growing. If you use a less common framework, you might be on your own. The framework agnostic approach also means Rsbuild does not provide framework-specific optimizations out of the box. For example, a React-focused build tool might automatically configure fast refresh or JSX transforms. Rsbuild likely handles the basics through SWC, but you will need to check the docs for framework-specific features. This is a trade-off: you get flexibility, but you lose the guided experience that framework-specific tools offer.

Limitations and Wrong Use Cases

The most obvious limitation is that Rsbuild is not a bundler itself. It is a wrapper around Rspack. If you need to customize the bundler at a low level, you will eventually hit the boundaries of Rsbuild's configuration API. The README does not claim to expose every Rspack option. That means power users might find themselves fighting the abstraction. Another limitation is the compatibility claim. 'Most webpack plugins' is not 'all webpack plugins'. If your project depends on a plugin that uses webpack-specific internals, it may break. The README also does not mention how Rsbuild handles large monorepos or complex multi-page applications. It is designed for web applications, but the docs would need to confirm support for advanced scenarios like module federation or server-side rendering. For a library author, Rsbuild is the wrong tool. The README points to Rslib for library development. So if you are building a reusable library, look elsewhere.

Alternatives: Vite and Raw Rspack

The most direct alternative is Vite. The README credits Vite as an inspiration. Vite uses esbuild for development and Rollup for production builds. Rsbuild uses Rspack for both. The difference is in the underlying engine. Vite's dev server is fast because of native ES modules and pre-bundling, but production builds can behave differently. Rsbuild aims for consistency between dev and prod, which is a different philosophy. Another alternative is using Rspack directly without Rsbuild. That gives you full control but requires you to write webpack-style configuration. Rsbuild is the middle path. If you are already comfortable with webpack, raw Rspack might be fine. If you want zero config, Rsbuild is the better fit. There is also the option of staying with webpack itself, but that means giving up the Rust-based speed. The choice comes down to how much configuration you are willing to own.

Maintenance, License, and Ecosystem Context

Rsbuild is part of the Rstack toolchain, which includes Rspack, Rslib, Rspress, and Rsdoctor. That means it is not an isolated project. It shares infrastructure and likely benefits from coordinated releases. The README shows an active release schedule, with v2.2.1 pushed in August 2026. That suggests ongoing maintenance. The license is MIT, which is permissive and should not impose restrictions on commercial use. However, the project is backed by ByteDance, as indicated by the code of conduct. That is worth noting if your organization has policies about dependencies from certain vendors. The README also credits create-react-app and Vite as influences, which gives some context for the design philosophy. There is no mention of a migration guide from v1 to v2 in the README, but the docs are split into v1 and v2 sections. That implies breaking changes exist. Before upgrading, you should read the v2 migration notes. The ecosystem around Rsbuild, including the plugin template and Storybook builder, is young but active.

Editorial conclusion

Adopt Rsbuild if you want Rspack's speed without wrestling with raw webpack configuration, especially if you are starting a new framework-agnostic web app and value artifact stability. Avoid it if you need deep control over the bundler's internals or if your team already has a mature webpack config you don't want to migrate. Before committing, verify that your existing webpack plugins work through Rsbuild's compatibility layer, and check the v2 docs for any breaking changes from v1. Rsbuild is a pragmatic middle ground, but it is not a replacement for understanding the underlying bundler.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes