You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: website/docs/en/guide/start/introduction.mdx
+12-25
Original file line number
Diff line number
Diff line change
@@ -59,31 +59,18 @@ Rspack was initially created to solve performance problems encountered at ByteDa
59
59
60
60
As of August 2024, we have released [Rspack 1.0](/blog/announcing-1-0), which is now what we consider production-ready as it covers most of webpack's APIs and features.
61
61
62
-
Rspack is currently compatible with almost all loaders in the community. For the 50 most downloaded [webpack plugins](/guide/compatibility/plugin), more than 80% can be used in Rspack or have an alternative.
62
+
Rspack is currently compatible with almost all loaders in the community. For the 50 most downloaded [webpack plugins](/guide/compatibility/plugin), more than 85% can be used in Rspack or have an alternative.
63
63
64
-
Please refer to the [Rspack blog](/blog/index) for the latest updates on Rspack.
64
+
:::tip Learn more
65
65
66
-
## The future of Rspack
66
+
- See [Rspack blogs](/blog/index) for the latest updates on Rspack.
67
+
- See [Roadmap](/misc/planning/roadmap) for the future plans of Rspack.
67
68
68
-
Although Rspack already meets the needs of many projects, there are still some gaps to reach the full capabilities of webpack. Prioritization will be based on community feedback, so please tell us about your needs!
69
+
:::
69
70
70
-
### Collaboration with community partners
71
+
##Comparisons with other tools
71
72
72
-
We are very willing to provide support to framework teams and toolchains within the community to unleash the true performance advantages of Rspack. If your framework or toolchain has a demand for high-performance build engines, let us know!
73
-
74
-
### Enhancing plugin capabilities
75
-
76
-
Rspack already implements the full `Loader` interface and most of the webpack plugin APIs. Although our goal is not to achieve 100% compatibility for plugin APIs, we will try our best to implement the mainstream requirements based on community feedback. At the same time, we are also exploring higher-performance plugin communication solutions to reduce the cost of plugin communication, thereby ensuring more plugin APIs can be implemented.
77
-
78
-
### Continuously improving performance
79
-
80
-
Performance is the core selling point and focus of Rspack development. In the future we'll explore higher-performance concurrent/multi-core-friendly algorithms, higher-performance caching solutions, higher-performance plugin communication solutions, etc.
81
-
82
-
### Expanding the test suite
83
-
84
-
Today Rspack is primarily tested using a subset of webpack's test cases. In the future, we'll cover more of these tests, while also expanding the test suite and including community projects to ensure compatibility across Rspack releases.
85
-
86
-
## Compared with webpack
73
+
### Compared with webpack
87
74
88
75
[webpack](https://webpack.js.org/) is perhaps the most mature modern bundler, with an active ecosystem, flexible configuration, and rich features.
89
76
@@ -95,23 +82,23 @@ Today Rspack is primarily tested using a subset of webpack's test cases. In the
95
82
96
83
-**Optimized hot module replacement (HMR):** No matter how large your project is, ensuring a great experience for HMR places even steeper demands for build times than ordinary bundling. Rspack incorporates a specialized incremental compilation strategy to address this requirement.
97
84
98
-
## Compared with Vite
85
+
###Compared with Vite
99
86
100
87
[Vite](https://vitejs.dev/) offers a great developer experience, but its reliance on [Rollup](https://rollupjs.org/) for production builds faces similar performance costs as other JavaScript-based algorithms. The same tradeoffs of webpack versus Rollup also apply, for example missing flexibility of the [optimization.splitChunks](/config/optimization#optimizationsplitchunks) feature.
101
88
102
-
## Compared with esbuild
89
+
###Compared with esbuild
103
90
104
91
[esbuild](https://esbuild.github.io/) achieves very good performance by implementing nearly all operations in Golang except for some JavaScript plugins. However, esbuild's feature set is not as complete as webpack, for example missing HMR and [optimization.splitChunks](/config/optimization#optimizationsplitchunks) features.
105
92
106
-
## Compared with Turbopack
93
+
###Compared with Turbopack
107
94
108
95
[Turbopack](https://turbo.build/) is implemented in Rust like Rspack, but Turbopack started over with a redesigned architecture and configuration. This brings some benefits, but presents a steeper migration cost for projects that rely on webpack and its extensive ecosystem.
109
96
110
-
## Compared with Rollup
97
+
###Compared with Rollup
111
98
112
99
Rspack and Rollup are both bundling tools, but they focus on different areas. Rollup is more suitable for bundling libraries, while Rspack is more suitable for bundling applications. Therefore, Rspack has optimized many features for bundling applications, such as HMR and Bundle splitting. Rollup produces ESM outputs that are more friendly to libraries than Rspack. There are also many tools in the community that encapsulate Rollup to some extent and provide more friendly support for bundling applications, such as vite and wmr. Currently, Rspack has better production build performance than rollup.
113
100
114
-
## Compared with Parcel
101
+
###Compared with Parcel
115
102
116
103
The overall architecture of Rspack shares many similarities with [Parcel](https://parceljs.org/). For example, both treat CSS assets as first-class citizens and both support filter-based transformers. However, Parcel focuses more on out-of-the-box usability, while Rspack focuses more on providing flexible configuration for higher-level frameworks and tools. Parcel innovatively designed features like the Unified Graph and making HTML a first-class citizen. Rspack also plans to support these features in the future.
Copy file name to clipboardExpand all lines: website/docs/en/guide/start/quick-start.mdx
+8-1
Original file line number
Diff line number
Diff line change
@@ -107,13 +107,14 @@ See [Configure Rspack](/config/index) to learn about how to configure Rspack.
107
107
108
108
## Migrating from existing projects
109
109
110
-
If you need to migrate from an existing project to Rspack or Rsbuild, you can refer to the following guides:
110
+
If you need to migrate from an existing project to Rspack stack, you can refer to the following guides:
111
111
112
112
-[Migrating from webpack to Rspack](/guide/migration/webpack)
113
113
-[Migrating from webpack to Rsbuild](https://rsbuild.dev/guide/migration/webpack)
114
114
-[Migrating from Create React App to Rsbuild](https://rsbuild.dev/guide/migration/cra)
115
115
-[Migrating from Vue CLI to Rsbuild](https://rsbuild.dev/guide/migration/vue-cli)
116
116
-[Migrating from Vite to Rsbuild](https://rsbuild.dev/guide/migration/vite)
117
+
-[Migrating from Tsup to Rslib](https://lib.rsbuild.dev/guide/migration/tsup)
117
118
-[Migrating from Storybook](/guide/migration/storybook)
118
119
119
120
## Ecosystem
@@ -156,6 +157,12 @@ Docusaurus v3.6 supports Rspack as the bundler, see [Docusaurus Faster](https://
156
157
157
158
Nuxt v3.14 introduces a new first-class Nuxt builder for Rspack, see [Nuxt 3.14](https://nuxt.com/blog/v3-14) for details.
158
159
160
+
### Re.pack
161
+
162
+
[Re.pack](https://github.com/callstack/repack) is a toolkit for building your React Native application.
163
+
164
+
Re.Pack v5 uses Rspack and React Native community CLI's plugin system to allow you to bundle your application using Rspack and easily switch from Metro.
165
+
159
166
### More
160
167
161
168
Visit [awesome-rspack](https://github.com/web-infra-dev/awesome-rspack) to discover more projects within the Rspack ecosystem.
Copy file name to clipboardExpand all lines: website/docs/en/misc/planning/roadmap.mdx
+37-11
Original file line number
Diff line number
Diff line change
@@ -2,23 +2,37 @@
2
2
3
3
The current document lists some important features that Rspack will support, some of which are already in progress, while others will be implemented in future versions of Rspack.
4
4
5
-
> Last updated: 2024-10
5
+
> Last updated: February 2025
6
6
7
7
## Rspack 1.x iteration
8
8
9
-
Rspack will release a minor version every 2-3 months, each containing significant new features and improvements.
9
+
Rspack will release a minor version every 2-3 months, each containing significant new features and performance improvements.
10
10
11
-
## Faster HMR
11
+
See [Rspack blogs](/blog/index) to learn about the latest minor versions of Rspack.
12
12
13
-
We are developing a new incremental build implementation that will significantly enhance Rspack's HMR performance.
13
+
## Wasm build
14
14
15
-
Rspack v1.1 will support this feature experimentally, and will continue to optimize it in future versions until it is enabled by default.
15
+
We plan to compile Rspack's Rust code into WebAssembly format, allowing Rspack to run in the browser.
16
+
17
+
You can see the current progress in this PR: [#9134](https://github.com/web-infra-dev/rspack/pull/9134).
18
+
19
+
## Introduce Rstest
20
+
21
+
We are implementing [Rstest](https://github.com/rspack/rstest), a testing framework based on Rspack. It can seamlessly integrate with Rspack's ecosystem and provide out-of-the-box testing capabilities.
22
+
23
+
We plan to release the first version of Rstest in the second half of 2025.
24
+
25
+
## Incremental build
26
+
27
+
Rspack v1.1 introduces experimental support for [incremental build](/config/experiments#experimentsincremental), which significantly enhances Rspack's HMR performance.
28
+
29
+
We will continue to optimize this feature in future versions until it is enabled by default.
16
30
17
31
## Persistent cache
18
32
19
-
Persistent Cache can cache the build artifacts during multiple builds, significantly reducing the time for subsequent builds, especially providing a substantial performance boost for large projects.
33
+
Persistent cache can cache the build artifacts during multiple builds, significantly reducing the time for subsequent builds, especially providing a substantial performance boost for large projects.
20
34
21
-
We are implementing the Persistent Cache feature for Rspack and plan to release experimental support in Rspack v1.2.
35
+
Rspack v1.2 introduces experimental support for [persistent cache](/config/experiments#experimentscache). We will continue to optimize it in the future to further improve cache performance and coverage.
22
36
23
37
## Portable cache
24
38
@@ -28,15 +42,15 @@ After that, we plan to continue implementing portable cache. This means that Rsp
28
42
29
43
## Webpack API alignment
30
44
31
-
As webpack contains a large number of APIs, we will be working to support the most frequently used loaders and plugins based on feedback from the community first.
45
+
As webpack has a rich API interface, we are taking a progressive approach to support them. We will closely follow community feedback and prioritize support for commonly used loaders and plugins.
32
46
33
-
## Stable Rust API
47
+
## Stabilize Rust API
34
48
35
-
Currently, higher-level tools can use the JS API to integrate Rspack, which provides good extensibility. However, the communication overhead between Rust and JavaScript that limits the performance of Rspack. We also provide the [SWC Wasm plugin](/guide/features/builtin-swc-loader#jscexperimentalplugins) to support extensions, but its performance is still slower than native languages.To provide higher-level tools with more flexible integration options and better performance, we plan to expose Rspack's Rust API for integration.
49
+
Currently, higher-level tools can use the [JS API](/api/javascript-api/index) to integrate Rspack, which provides good extensibility. However, the communication overhead between Rust and JavaScript that limits the performance of Rspack. We also provide the [SWC Wasm plugin](/guide/features/builtin-swc-loader#jscexperimentalplugins) to support extensions, but its performance is still slower than native languages.To provide higher-level tools with more flexible integration options and better performance, we plan to expose Rspack's Rust API for integration.
36
50
37
51
## Improved ESM output
38
52
39
-
ESM is the standard for JavaScript modules. We are currently improving Rspack and webpack's support for ESM output and creating a library build tool based on Rspack called Rslib. This will allow developers to make better use of ESM's static analysis and tree-shaking when building npm packages.
53
+
ESM is the standard for JavaScript modules. We are currently improving Rspack and webpack's support for ESM output and creating a library build tool based on Rspack called [Rslib](https://github.com/web-infra-dev/rslib). This will allow developers to make better use of ESM's static analysis and tree-shaking when building npm packages.
40
54
41
55
## React Server Components support
42
56
@@ -45,3 +59,15 @@ At ByteDance, we have experimentally supported RSC ([React Server Components](ht
45
59
## TypeScript-based optimization
46
60
47
61
Currently, when Rspack processes TypeScript modules, it first converts them to JavaScript through a loader before further processing. This provides flexibility but also hinders further optimization of the build output. For example, developers need to use `enum` instead of `const enum`, but `enum` is difficult to optimize as a constant. In the future, we plan to treat TypeScript as a first-class citizen in Rspack, leveraging TypeScript's static information to provide more advanced compile-time optimization of the build output (such as [type-based property renaming](https://github.com/google/closure-compiler/wiki/Type-Based-Property-Renaming)).
62
+
63
+
### Continuously improving performance
64
+
65
+
Performance is the core selling point and focus of Rspack development. In the future we'll explore higher-performance concurrent/multi-core-friendly algorithms, higher-performance caching solutions, higher-performance plugin communication solutions, etc.
66
+
67
+
### Expanding the test suite
68
+
69
+
Today Rspack is primarily tested using a subset of webpack's test cases. In the future, we'll cover more of these tests, while also expanding the test suite and including community projects to ensure compatibility across Rspack releases.
70
+
71
+
### Collaboration with community partners
72
+
73
+
We are very willing to provide support to framework teams and toolchains within the community to unleash the true performance advantages of Rspack. If your framework or toolchain has a demand for high-performance build engines, let us know!
0 commit comments