Performance
Every number on this page was produced by execution — no estimates. Measured with a node:http loopback client at concurrency 50, 3 runs averaged, on Node v20.20.1.
At a glance
How to read this
StreetJS trades a little raw throughput for a fully in-house, memory-bounded stack (native PostgreSQL driver, JWT, sessions, WebSockets — no Express, no pg). It runs ~2.1× Express and ~2.3× NestJS while keeping a 2-dependency footprint.
Throughput — requests per second
GET / → {"status":"ok"} · median req/s · higher is better
Tail latency — P99 (ms)
99th-percentile response time · lower is better
Methodology
Reproduce it yourself
Results are written to benchmarks/results.json, results.md and history.json. The competitor packages live in an isolated benchmarks/compare/ workspace so the framework keeps its 2-dependency footprint.
1
2
3
4
5
6
# one-time isolated comparison environment
cd benchmarks/compare && npm install --no-workspaces && cd -
# build + run the comparison
npm run build -w packages/core
node packages/core/dist/src/benchmarks/run.js --compare
- Route —
GET /→{"status":"ok"}, identical payload on every framework. - Load —
node:httploopback client · concurrency 50 · 3000 ms window · 1000 ms warmup discarded. - Iterations — 3 measured runs per framework (mean / median / best / worst / variance).
- Environment — single host, Node
v20.20.1, servers started and stopped sequentially. - Competitors — Express 5, Fastify 5, NestJS 11, Hono 4.
Full report
Performance Certification
Run-by-run tables, reproducibility data and variance analysis.
Raw results (results.md)
The generated artifact, straight from the benchmark runner.