Benchmarks

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

27.5kRequests / secmedian, Run 2
2msP50 latencyP99 = 5ms
70msCold startupto first request
2Runtime depsreflect-metadata, ws

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

Fastify
33,183
Hono
30,776
StreetJS
27,700
Express
13,017
NestJS
11,783

Tail latency — P99 (ms)

99th-percentile response time · lower is better

Fastify
3 ms
Hono
3 ms
StreetJS
5 ms
Express
8 ms
NestJS
7 ms

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
  • RouteGET /{"status":"ok"}, identical payload on every framework.
  • Loadnode:http loopback 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


Table of contents