Full pipeline: POST with auth + validation
The functions themselves are no-ops — this measures pure framework overhead: body parsing, schema validation, middleware, and permissions checks.
Every scenario, side by side
Five test scenarios from minimal to full pipeline. All numbers in requests per second.
Minimal — no body, no middleware, no auth
JSON body parsing with schema validation
One session middleware layer
Two middleware + permissions + body parsing
URL parameter extraction (/items/:id)
Express
Fastify
uWS
Bun
In-process with fetch()
No network, no HTTP server — just a direct fetch() call into Pikku's core. This isolates the framework overhead from network latency.
How we tested
HTTP benchmarks
- •autocannon — 100 connections, 10-second runs, pipelining factor of 10
- •Each runtime tested with identical Pikku function: body parsing, session middleware, permissions check
- •Baselines use the same route logic implemented natively for each framework
fetch() benchmark
- •1,000 warmup iterations followed by 10,000 measured iterations
- •Direct in-process call — no network overhead, no HTTP server
- •Measures pure Pikku core: routing, middleware, validation, response serialization
Note on Express: The express.json() middleware is added upstream in the Pikku Express adapter (required for POST body parsing). This adds overhead to all routes including GETs, which inflates the Pikku Express numbers slightly compared to the baseline where body parsing is only applied to POST routes.
Write once. Deploy fast.
One function, every runtime. Start building with Pikku in minutes.