/rspack

A fast Rust-based web bundler.

Primary LanguageRustMIT LicenseMIT

Rspack Banner

A fast Rust-based web bundler

discord channel npm version downloads license

English | 简体中文

✨ Features

  • 🚀 Fast Startup: Based on Rust, the build speed is extremely fast, bringing you the ultimate development experience.
  • Lightning HMR: With a built-in incremental compilation mechanism, HMR is extremely fast and fully capable of developing large-scale projects.
  • 📦 Webpack Interoperable: Compatible with the architecture and ecosystem of webpack, no need to build the ecosystem from scratch.
  • 🎨 Batteries Included: Out-of-the-box support for TypeScript, JSX, CSS, CSS Modules, Sass, and more.
  • 🛠️ Production Optimization: Various optimization strategies are built in by default, such as tree shaking, minification, etc.
  • 🎯 Framework Agnostic: Not bound to any frontend framework, ensuring enough flexibility.

Read Introduction for details.

Getting Started

Contribution

This project is new and under active development. Although Rspack can already successfully bundle real world projects, its APIs are not yet stable, and many Webpack plugin hooks have not been implemented yet. If you have feedback, questions, or bug reports, please create a GitHub issue. Any contributions are greatly appreciated!

Please read the contributing guide and let's build Rspack together.

Code of Conduct

This repo has adopted the ByteDance Open Source Code of Conduct. Please check Code of Conduct for more details.

Links

Name Description
Rspack website Official documentation for Rspack
Rspack website repo Repository of official documentation
rspack-sources Rusty webpack-sources port
rspack-migration-showcase Migration showcases for Rspack

Contributors

Benchmark

See Benchmark

Credits

Thanks to:

  • The webpack team and community for creating a great bundler and ecosystem from which we draw a lot of inspiration.
  • @sokra for the great work on the webpack project.
  • @ScriptedAlchemy for creating Module Federation and helping Rspack connect with the community.
  • The SWC project created by @kdy1, which powers Rspack's code parsing, transformation and minification.
  • The esbuild project created by @evanw, which inspired the concurrent architecture of Rspack.
  • The NAPI-RS project created by @Brooooooklyn, which powers Rspack's node-binding implementation.
  • The Parcel project created by @devongovett which is the pioneer of rust bundler and inspired Rspack's incremental rebuild design.
  • The Vite project created by Evan You which inspired Rspack's compatibility design of webpack's ecosystem.
  • The Rolldown project created by Rolldown team, which explores the possibility of making a performant bundler in Rust with Rollup-compatible API. It inspires the design principles of Rspack.
  • The html-webpack-plugin project created by @jantimon, @rspack/html-plugin is a fork of html-webpack-plugin to avoid some webpack API usage not supported in Rspack.
  • The Turbopack project which inspired the AST path logic of Rspack.
  • The react-refresh-webpack-plugin created by @pmmmwh, which inspires implement react refresh.

License

Rspack is MIT licensed.