@@ -20,7 +20,7 @@ Benchmark comparing JavaScript bundlers and build tools ([Rspack](https://github
20
20
21
21
## Results
22
22
23
- > Data from GitHub Actions: https://github.com/rspack-contrib/build-tools-performance/actions/runs/16540342624 (2025-07-26 )
23
+ > Data from GitHub Actions: https://github.com/rspack-contrib/build-tools-performance/actions/runs/16665265886 (2025-08-01 )
24
24
25
25
### react-1k
26
26
@@ -30,29 +30,15 @@ A React app with 1,000 components and 1,500 modules from node_modules, using dyn
30
30
CASE=react-1k pnpm benchmark
31
31
```
32
32
33
- #### Build performance
34
-
35
- | Name | Dev cold start | HMR | Prod build |
36
- | ---------------------------- | -------------- | ------ | ---------- |
37
- | Rspack CLI 1.4.10 | 831ms | 109ms | 621ms |
38
- | Rspack CLI (Lazy) 1.4.10 | 386ms🥇 | 78ms🥇 | 708ms |
39
- | Rsbuild 1.4.11 | 711ms🥉 | 89ms🥉 | 543ms🥈 |
40
- | Rsbuild (Lazy) 1.4.11 | 575ms🥈 | 78ms🥈 | 587ms🥉 |
41
- | Vite (Rolldown + Oxc) 7.0.11 | 4313ms | 129ms | 367ms🥇 |
42
- | Vite (Rollup + SWC) 7.0.6 | 3907ms | 126ms | 2369ms |
43
- | webpack (SWC) 5.100.2 | 3663ms | 341ms | 3844ms |
44
-
45
- #### Bundle sizes
46
-
47
- | Name | Total size | Gzipped size |
48
- | ---------------------------- | ---------- | ------------ |
49
- | Rspack CLI 1.4.10 | 838.9kB🥉 | 218.5kB |
50
- | Rspack CLI (Lazy) 1.4.10 | 838.9kB | 218.5kB |
51
- | Rsbuild 1.4.11 | 870.6kB | 212.3kB🥇 |
52
- | Rsbuild (Lazy) 1.4.11 | 870.6kB | 212.3kB🥈 |
53
- | Vite (Rolldown + Oxc) 7.0.11 | 839.6kB | 230.7kB |
54
- | Vite (Rollup + SWC) 7.0.6 | 798.7kB🥇 | 215.7kB🥉 |
55
- | webpack (SWC) 5.100.2 | 836.0kB🥈 | 223.8kB |
33
+ | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
34
+ | ---------------------------- | -------------- | ------- | ---------- | ---------- | ------------ |
35
+ | Rspack CLI 1.4.11 | 761ms | 114ms | 602ms | 838.9kB🥉 | 218.5kB |
36
+ | Rspack CLI (Lazy) 1.4.11 | 390ms🥇 | 102ms🥇 | 596ms | 838.9kB | 218.5kB |
37
+ | Rsbuild 1.4.12 | 561ms🥉 | 106ms🥈 | 523ms🥈 | 870.6kB | 212.3kB🥇 |
38
+ | Rsbuild (Lazy) 1.4.12 | 511ms🥈 | 106ms🥉 | 528ms🥉 | 870.6kB | 212.3kB🥈 |
39
+ | Vite (Rolldown + Oxc) 7.0.12 | 3427ms | 148ms | 392ms🥇 | 839.6kB | 230.7kB |
40
+ | Vite (Rollup + SWC) 7.0.6 | 3442ms | 131ms | 1895ms | 798.7kB🥇 | 215.7kB🥉 |
41
+ | webpack (SWC) 5.101.0 | 3047ms | 307ms | 2523ms | 836.0kB🥈 | 224.2kB |
56
42
57
43
### react-5k
58
44
@@ -62,29 +48,15 @@ A React app with 5,000 components and 5,000 modules from node_modules, using dyn
62
48
CASE=react-5k pnpm benchmark
63
49
```
64
50
65
- #### Build performance
66
-
67
- | Name | Dev cold start | HMR | Prod build |
68
- | ---------------------------- | -------------- | ------ | ---------- |
69
- | Rspack CLI 1.4.10 | 1580ms | 159ms | 1212ms🥈 |
70
- | Rspack CLI (Lazy) 1.4.10 | 352ms🥇 | 79ms🥈 | 1375ms |
71
- | Rsbuild 1.4.11 | 1383ms🥉 | 148ms | 1533ms |
72
- | Rsbuild (Lazy) 1.4.11 | 439ms🥈 | 66ms🥇 | 1303ms🥉 |
73
- | Vite (Rolldown + Oxc) 7.0.11 | 2820ms | 99ms🥉 | 748ms🥇 |
74
- | Vite (Rollup + SWC) 7.0.6 | 2893ms | 111ms | 5287ms |
75
- | webpack (SWC) 5.100.2 | 7354ms | 759ms | 8844ms |
76
-
77
- #### Bundle sizes
78
-
79
- | Name | Total size | Gzipped size |
80
- | ---------------------------- | ---------- | ------------ |
81
- | Rspack CLI 1.4.10 | 2846.4kB | 677.2kB🥇 |
82
- | Rspack CLI (Lazy) 1.4.10 | 2846.4kB | 677.2kB🥈 |
83
- | Rsbuild 1.4.11 | 2877.3kB | 678.4kB🥉 |
84
- | Rsbuild (Lazy) 1.4.11 | 2877.3kB | 678.4kB |
85
- | Vite (Rolldown + Oxc) 7.0.11 | 2718.0kB🥈 | 751.7kB |
86
- | Vite (Rollup + SWC) 7.0.6 | 2576.7kB🥇 | 687.7kB |
87
- | webpack (SWC) 5.100.2 | 2824.8kB🥉 | 695.7kB |
51
+ | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
52
+ | ---------------------------- | -------------- | ------- | ---------- | ---------- | ------------ |
53
+ | Rspack CLI 1.4.11 | 2700ms🥉 | 254ms | 1967ms | 2846.4kB | 677.2kB🥇 |
54
+ | Rspack CLI (Lazy) 1.4.11 | 538ms🥇 | 68ms🥇 | 1870ms🥉 | 2846.4kB | 677.2kB🥈 |
55
+ | Rsbuild 1.4.12 | 2831ms | 229ms | 1883ms | 2877.3kB | 678.4kB🥉 |
56
+ | Rsbuild (Lazy) 1.4.12 | 618ms🥈 | 68ms🥈 | 1864ms🥈 | 2877.3kB | 678.4kB |
57
+ | Vite (Rolldown + Oxc) 7.0.12 | 5243ms | 106ms🥉 | 1499ms🥇 | 2718.0kB🥈 | 751.7kB |
58
+ | Vite (Rollup + SWC) 7.0.6 | 5878ms | 122ms | 6673ms | 2576.7kB🥇 | 687.7kB |
59
+ | webpack (SWC) 5.101.0 | 10443ms | 1774ms | 9588ms | 2824.7kB🥉 | 695.4kB |
88
60
89
61
### react-10k
90
62
@@ -94,27 +66,15 @@ A React app with 10,000 components and 10,000 modules from node_modules, using d
94
66
CASE=react-10k pnpm benchmark
95
67
```
96
68
97
- | Name | Dev cold start | HMR | Prod build |
98
- | ---------------------------- | -------------- | ------- | ---------- |
99
- | Rspack CLI 1.4.10 | 2689ms🥉 | 272ms | 2597ms🥉 |
100
- | Rspack CLI (Lazy) 1.4.10 | 448ms🥇 | 89ms🥇 | 2446ms🥈 |
101
- | Rsbuild 1.4.11 | 3038ms | 301ms | 2876ms |
102
- | Rsbuild (Lazy) 1.4.11 | 544ms🥈 | 89ms🥈 | 3318ms |
103
- | Vite (Rolldown + Oxc) 7.0.11 | 4483ms | 129ms | 1562ms🥇 |
104
- | Vite (Rollup + SWC) 7.0.6 | 5281ms | 112ms🥉 | 9913ms |
105
- | webpack (SWC) 5.100.2 | 14464ms | 3046ms | 17570ms |
106
-
107
- #### Bundle sizes
108
-
109
- | Name | Total size | Gzipped size |
110
- | ---------------------------- | ---------- | ------------ |
111
- | Rspack CLI 1.4.10 | 5996.3kB | 1367.1kB🥇 |
112
- | Rspack CLI (Lazy) 1.4.10 | 5996.3kB | 1367.1kB🥈 |
113
- | Rsbuild 1.4.11 | 6054.6kB | 1367.3kB🥉 |
114
- | Rsbuild (Lazy) 1.4.11 | 6054.6kB | 1367.3kB |
115
- | Vite (Rolldown + Oxc) 7.0.11 | 5675.7kB🥈 | 1546.6kB |
116
- | Vite (Rollup + SWC) 7.0.6 | 5366.6kB🥇 | 1408.3kB |
117
- | webpack (SWC) 5.100.2 | 5947.1kB🥉 | 1449.1kB |
69
+ | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
70
+ | ---------------------------- | -------------- | ------- | ---------- | ---------- | ------------ |
71
+ | Rspack CLI 1.4.11 | 6875ms🥉 | 924ms | 6129ms | 5996.3kB | 1367.1kB🥇 |
72
+ | Rspack CLI (Lazy) 1.4.11 | 1548ms🥈 | 339ms | 6042ms | 5996.3kB | 1367.1kB🥈 |
73
+ | Rsbuild 1.4.12 | 9176ms | 702ms | 5093ms🥈 | 6054.6kB | 1367.3kB🥉 |
74
+ | Rsbuild (Lazy) 1.4.12 | 1517ms🥇 | 161ms🥉 | 6026ms🥉 | 6054.6kB | 1367.3kB |
75
+ | Vite (Rolldown + Oxc) 7.0.12 | 13444ms | 130ms🥈 | 3299ms🥇 | 5675.7kB🥈 | 1546.6kB |
76
+ | Vite (Rollup + SWC) 7.0.6 | 11575ms | 122ms🥇 | 21748ms | 5366.6kB🥇 | 1408.3kB |
77
+ | webpack (SWC) 5.101.0 | 35630ms | 9240ms | 26044ms | 5947.1kB🥉 | 1449.3kB |
118
78
119
79
### ui-components
120
80
@@ -124,31 +84,16 @@ A React app that imports UI components from several popular UI libraries.
124
84
CASE=ui-components pnpm benchmark
125
85
```
126
86
127
- #### Build performance
128
-
129
- | Name | Prod build |
130
- | ---------------------------- | ---------- |
131
- | Rspack CLI 1.4.10 | 2183ms |
132
- | Rsbuild 1.4.11 | 2948ms |
133
- | Vite (Rollup + SWC) 7.0.6 | 11889ms |
134
- | Vite (Rolldown + Oxc) 7.0.11 | 1542ms🥇 |
135
- | Rolldown 1.0.0-beta.29 | 1627ms🥈 |
136
- | webpack (SWC) 5.100.2 | 13854ms |
137
- | esbuild 0.25.8 | 1725ms🥉 |
138
- | Farm 1.7.10 | 2038ms |
139
-
140
- #### Bundle sizes
141
-
142
- | Name | Total size | Gzipped size |
143
- | ---------------------------- | ---------- | ------------ |
144
- | Rspack CLI 1.4.10 | 2027.1kB🥈 | 617.1kB🥈 |
145
- | Rsbuild 1.4.11 | 2025.0kB🥇 | 616.6kB🥇 |
146
- | Vite (Rollup + SWC) 7.0.6 | 2039.2kB | 638.5kB |
147
- | Vite (Rolldown + Oxc) 7.0.11 | 2050.4kB | 635.0kB |
148
- | Rolldown 1.0.0-beta.29 | 2064.9kB | 635.5kB |
149
- | webpack (SWC) 5.100.2 | 2027.1kB🥉 | 618.4kB🥉 |
150
- | esbuild 0.25.8 | 2837.7kB | 870.3kB |
151
- | Farm 1.7.10 | 3764.5kB | 1309.0kB |
87
+ | Name | Prod build | Total size | Gzipped size |
88
+ | ---------------------------- | ---------- | ---------- | ------------ |
89
+ | Rspack CLI 1.4.11 | 4290ms | 2027.9kB🥈 | 617.5kB🥈 |
90
+ | Rsbuild 1.4.12 | 4155ms | 2025.9kB🥇 | 617.0kB🥇 |
91
+ | Vite (Rollup + SWC) 7.0.6 | 13491ms | 2040.1kB | 638.9kB |
92
+ | Vite (Rolldown + Oxc) 7.0.12 | 1902ms🥈 | 2051.3kB | 635.3kB |
93
+ | Rolldown 1.0.0-beta.30 | 1609ms🥇 | 2065.8kB | 635.9kB |
94
+ | webpack (SWC) 5.101.0 | 16774ms | 2028.0kB🥉 | 618.8kB🥉 |
95
+ | esbuild 0.25.8 | 2785ms🥉 | 2838.6kB | 870.7kB |
96
+ | Farm 1.7.10 | 2940ms | 3765.7kB | 1312.6kB |
152
97
153
98
### rome
154
99
@@ -158,25 +103,13 @@ A complex TypeScript Node.js project that includes multiple packages from the [r
158
103
CASE=rome pnpm benchmark
159
104
```
160
105
161
- #### Build performance
162
-
163
- | Name | Prod build |
164
- | ---------------------- | ---------- |
165
- | Rspack CLI 1.4.10 | 1327ms🥉 |
166
- | Rsbuild 1.4.11 | 1577ms |
167
- | Rolldown 1.0.0-beta.29 | 813ms🥈 |
168
- | webpack (SWC) 5.100.2 | 5594ms |
169
- | esbuild 0.25.8 | 781ms🥇 |
170
-
171
- #### Bundle sizes
172
-
173
- | Name | Total size | Gzipped size |
174
- | ---------------------- | ---------- | ------------ |
175
- | Rspack CLI 1.4.10 | 1009.3kB🥈 | 270.9kB🥈 |
176
- | Rsbuild 1.4.11 | 1009.3kB🥉 | 271.0kB🥉 |
177
- | Rolldown 1.0.0-beta.29 | 1016.3kB | 273.6kB |
178
- | webpack (SWC) 5.100.2 | 1007.4kB🥇 | 270.6kB🥇 |
179
- | esbuild 0.25.8 | 1025.3kB | 276.7kB |
106
+ | Name | Prod build | Total size | Gzipped size |
107
+ | ---------------------- | ---------- | ---------- | ------------ |
108
+ | Rspack CLI 1.4.11 | 1640ms | 1009.3kB🥈 | 270.9kB🥈 |
109
+ | Rsbuild 1.4.12 | 1389ms🥉 | 1009.3kB🥉 | 271.0kB🥉 |
110
+ | Rolldown 1.0.0-beta.30 | 550ms🥈 | 1016.3kB | 273.6kB |
111
+ | webpack (SWC) 5.101.0 | 5279ms | 1007.4kB🥇 | 270.6kB🥇 |
112
+ | esbuild 0.25.8 | 398ms🥇 | 1025.3kB | 276.7kB |
180
113
181
114
## Run locally
182
115
0 commit comments