chore: upgrade Vite 8.0.16, Rolldown 1.1.0, Vitest 5.0.0-beta.4#438
Conversation
❌ 1 Tests Failed:
View the top 3 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
⚡ Benchmark ResultsCommit:
Legend🟢 > 1% improvement | 🔴 > 1% regression | ⚪ within noise margin Benchmarks run on GitHub Actions runners (shared infrastructure) — expect ~5% variance between runs. Consistent directional changes across multiple routes are more meaningful than any single number. |
⚡ Flight Protocol BenchmarkCommit: Serialization (
|
| Scenario | @lazarv/rsc | webpack | vs webpack |
|---|---|---|---|
| react: minimal element | 258.1K | 51.9K | 🟢 +397.2% |
| react: shallow wide (1000) | 2.8K | 437 | 🟢 +538.9% |
| react: deep nested (100) | 28.1K | 7.3K | 🟢 +286.4% |
| react: product list (50) | 8.2K | 2.5K | 🟢 +232.0% |
| react: large table (500x10) | 427 | 122 | 🟢 +249.5% |
| data: primitives | 206.5K | 56.4K | 🟢 +266.1% |
| data: large string (100KB) | 23.4K | 18.5K | 🟢 +25.9% |
| data: nested objects (20) | 65.1K | 33.9K | 🟢 +91.8% |
| data: large array (10K) | 146 | 121 | 🟢 +20.6% |
| data: Map & Set | 12.0K | 6.7K | 🟢 +80.3% |
| data: Date/BigInt/Symbol | 166.6K | 44.0K | 🟢 +278.6% |
| data: typed arrays | 46.3K | 17.2K | 🟢 +169.2% |
| data: mixed payload | 7.9K | 4.3K | 🟢 +85.5% |
Prerender (prerender)
| Scenario | @lazarv/rsc ops/s | mean |
|---|---|---|
| react: minimal element | 280.6K | 3.7 µs |
| react: shallow wide (1000) | 2.5K | 404.3 µs |
| react: deep nested (100) | 25.4K | 40.0 µs |
| react: product list (50) | 7.6K | 133.8 µs |
| react: large table (500x10) | 383 | 2.65 ms |
| data: primitives | 220.5K | 4.7 µs |
| data: large string (100KB) | 1.1K | 944.8 µs |
| data: nested objects (20) | 67.8K | 15.1 µs |
| data: large array (10K) | 147 | 6.80 ms |
| data: Map & Set | 12.5K | 81.7 µs |
| data: Date/BigInt/Symbol | 184.9K | 5.6 µs |
| data: typed arrays | 810 | 1.24 ms |
| data: mixed payload | 7.4K | 137.7 µs |
Deserialization (createFromReadableStream)
| Scenario | @lazarv/rsc | webpack | vs webpack |
|---|---|---|---|
| react: minimal element | 188.6K | 131.9K | 🟢 +43.0% |
| react: shallow wide (1000) | 32.0K | 2.3K | 🟢 +1282.3% |
| react: deep nested (100) | 126.0K | 21.6K | 🟢 +483.1% |
| react: product list (50) | 63.9K | 16.9K | 🟢 +277.1% |
| react: large table (500x10) | 4.5K | 2.6K | 🟢 +71.4% |
| data: primitives | 149.7K | 116.2K | 🟢 +28.9% |
| data: large string (100KB) | 46.0K | 36.6K | 🟢 +25.6% |
| data: nested objects (20) | 98.4K | 69.1K | 🟢 +42.3% |
| data: large array (10K) | 356 | 308 | 🟢 +15.6% |
| data: Map & Set | 18.5K | 16.1K | 🟢 +15.0% |
| data: Date/BigInt/Symbol | 145.3K | 98.9K | 🟢 +46.9% |
| data: typed arrays | 78.1K | 51.4K | 🟢 +51.9% |
| data: mixed payload | 27.4K | 16.3K | 🟢 +67.8% |
Roundtrip (serialize + deserialize)
| Scenario | @lazarv/rsc | webpack | vs webpack |
|---|---|---|---|
| react: minimal element | 129.3K | 28.5K | 🟢 +353.2% |
| react: shallow wide (1000) | 2.5K | 350 | 🟢 +609.4% |
| react: deep nested (100) | 22.6K | 5.3K | 🟢 +328.1% |
| react: product list (50) | 6.8K | 2.0K | 🟢 +236.6% |
| react: large table (500x10) | 360 | 116 | 🟢 +210.7% |
| data: primitives | 90.4K | 33.3K | 🟢 +171.5% |
| data: large string (100KB) | 15.6K | 16.4K | 🔴 -4.7% |
| data: nested objects (20) | 38.9K | 19.5K | 🟢 +99.7% |
| data: large array (10K) | 102 | 86 | 🟢 +19.4% |
| data: Map & Set | 7.0K | 4.4K | 🟢 +59.7% |
| data: Date/BigInt/Symbol | 72.4K | 25.2K | 🟢 +186.8% |
| data: typed arrays | 32.0K | 13.9K | 🟢 +131.0% |
| data: mixed payload | 5.6K | 3.3K | 🟢 +72.6% |
Legend & methodology
Indicators: 🟢 > 1% faster | 🔴 > 1% slower | ⚪ within noise margin
vs webpack: compares @lazarv/rsc against react-server-dom-webpack within the same run.
vs baseline: compares @lazarv/rsc against the previous main branch run.
Values shown are operations/second (higher is better). Each scenario runs for at least 100 iterations with warmup.
Benchmarks run on GitHub Actions runners (shared infrastructure) — expect ~5% variance between runs. Consistent directional changes across multiple scenarios are more meaningful than any single number.
Automated daily upgrade of Vite, Rolldown, and/or Vitest to the latest available versions.
Vite:
8.0.14→8.0.16Rolldown:
1.0.2→1.1.0Vitest:
5.0.0-beta.2→5.0.0-beta.4Updated locations
packages/react-server/package.json—vite,rolldowntest/package.json—vite,rolldown,vitest,@vitest/uipackages/rsc/package.json—vitest,@vitest/*packages/create-react-server/test/package.json—vitestpackage.json— allpnpm.overridesfor Vitepnpm-lock.yamlSmoke test
hello worldtest passed ✅hello worldtest passed ✅