Benchmarks
Compare Niral SSR throughput and hydration with other web frameworks. Review test conditions, measured results and reproducible benchmark methodology.
On this page 3 sections
Identical 1000-row SSR'd apps per framework, same machine, alternating-order runs, medians reported. Full methodology lives in the repo under bench/hydration/ and bench/e2e/ — run them yourself.
End-to-end — real production servers
The whole request path: each framework's own production server, dynamic SSR on every request, no caching, 100 connections for 10 seconds. Zero errors for every framework.
| Framework | req/s | p50 | p99 | build |
|---|---|---|---|---|
| niral | ~2,374 | 39 ms | 81 ms | 0.2 s |
| solidstart 1 | ~1,885 | 43 ms | 151 ms | 4.9 s |
| astro 5 | ~698 | 140 ms | 338 ms | 1.3 s |
| sveltekit 2 | ~599 | 137 ms | ~1.1 s | 2.9 s |
| next 16 | ~303 | 305 ms | ~2.3 s | 3.9 s |
niral leads every JS meta-framework on throughput — ~1.3× SolidStart (the closest rival), ~3.4× Astro, ~4× SvelteKit, ~7.8× Next.js — with the best tail latency (p99 81 ms while every other exceeds 150 ms) and the lowest memory.
Hydration (parse start → interactive)
| Framework | median | p90 | JS shipped |
|---|---|---|---|
| niral | 6.6 ms | 9.1 ms | 29.7 KB |
| svelte 5 | 6.4 ms | 15.8 ms | 51.1 KB (min) |
| react 19 | 20.3 ms | 22.5 ms | 189.0 KB (min) |
Server rendering (renders/second, same page)
| Framework | ms/render | renders/sec |
|---|---|---|
| svelte 5 | 0.18 | ~5,600 |
| niral | 0.18–0.24 | ~4,200–5,500 |
| react 19 | 2.5 | ~395 |
Niral compiles a second, string-concatenation renderer per component — server output is byte-identical to what hydration expects, with none of the tree cost.
Numbers vary with hardware and load; compare within one session and prefer medians. The bench is deliberately reproducible — we'd rather you check.