Features
Docs
CLI
Migrations
Benchmarks
Examples

© 2024 MoroJs

Performance Benchmarks

Independent, verifiable performance testing using industry-standard tools. All benchmarks are reproducible and conducted with production configurations.

uWebSockets.js

Maximum performance with uWebSockets.js transport layer.

Requests/sec226,253
Avg Latency3.92ms
Throughput32.1 MB/s
Peak Performance

• uWebSockets.js transport

• Same Moro API

• Lowest latency

Clustering Mode

Built-in clustering with auto worker management.

Requests/sec190,717
Avg Latency4.89ms
Throughput35.7 MB/s
Multi-Core

• Multi-core utilization

• Auto worker scaling

• Load distribution

Single-Threaded

Single process performance with production-ready configuration.

Requests/sec93,992
Avg Latency10.14ms
Throughput17.6 MB/s
Single Core

• Single process mode

• Minimal overhead

• Easy deployment

Framework Comparison

Every row below is sourced — pulled straight from the framework's own published benchmark, all on the same autocannon -c100 -d40 -p10 profile (Elysia run on Bun, NestJS via Sharkbench).

FrameworkReq/secAvg LatencyRuntimeSource
NestJS (Fastify adapter)9,1643.5msNode 22Sharkbench 2025
Express 5.2.128,10435.07msNode 24fastify/benchmarks
Koa 3.2.036,15227.15msNode 24fastify/benchmarks
Hono 4.12.937,32026.30msNode 24fastify/benchmarks
Fastify 5.8.446,19321.14msNode 24fastify/benchmarks
Elysia 1.471,20212.6msBun 1.1APIScout 2026
MoroJS — single core93,99210.14msNode 22Moro-JS/benchmark
MoroJS — clustered190,7174.89msNode 22Moro-JS/benchmark
MoroJS — uWebSockets.js226,2533.92msNode 22Moro-JS/benchmark
vs Fastify · uWS+390%226k vs 46k
vs Elysia (Bun)+218%226k vs 71k
vs Hono · clustered+411%190k vs 37k
vs Express · clustered+579%190k vs 28k
All framework numbers cite their original source. MoroJS variants from the published suite (M2 Ultra, Node 22.12). Click any source link to verify.

Key Findings

uWebSockets.js vs Clustered

Throughput Gain+19% faster
Latency Reduction~20% lower

Clustering vs Single-Threaded

Throughput Gain+103% (2x)
Latency Reduction~52% lower
Latency Stability~87% tighter

Detailed Performance Metrics

uWebSockets.js Statistics

Latency (ms)
Requests/Sec
2.5%: 1ms
1%: 215,935
50%: 4ms
50%: 226,559
97.5%: 6ms
97.5%: 231,807
Avg: 3.92ms
Avg: 226,252.8

Clustering Mode Statistics

Latency (ms)
Requests/Sec
2.5%: 4ms
1%: 174,079
50%: 5ms
50%: 191,743
97.5%: 5ms
97.5%: 193,535
Avg: 4.89ms
Avg: 190,716.8

Single-Threaded Statistics

Latency (ms)
Requests/Sec
2.5%: 6ms
1%: 86,655
50%: 8ms
50%: 93,951
97.5%: 17ms
97.5%: 97,279
Avg: 10.14ms
Avg: 93,992

Testing Methodology

Tools & Environment

  • Autocannon (industry standard)
  • MacBook Studio M2 Ultra
  • Node.js v22.12.0
  • Production configuration

Test Parameters

  • 100 concurrent connections
  • 40 second duration
  • 10 pipelined requests
  • Multiple test runs

Test Configurations

  • uWebSockets.js (port 3112)
  • Clustered mode (port 3111)
  • Single-threaded (port 3110)
  • Same autocannon profile

Important Note

These are synthetic benchmarks designed to measure framework overhead. Real-world performance depends on your application logic, database queries, external API calls, and other factors. Always benchmark your specific use case.

Reproduce These Results

Clone & Setup

git clone https://github.com/Moro-JS/benchmark.git

cd benchmark && npm install

uWebSockets.js (Peak Performance) — port 3112

# Terminal 1 — start the uWS server

npm run hello-world-uws

# Terminal 2 — run the benchmark

npm run bench-uws

Clustered Mode — port 3111

# Terminal 1 — start the clustered server

npm run hello-world

# Terminal 2 — run the benchmark

npm run bench

Single-Threaded — port 3110

# Terminal 1 — start the single-threaded server

npm run hello-world-single

# Terminal 2 — run the benchmark

npm run bench-single

All Available Scripts

Server:npm run hello-world
Bench:npm run bench
Server:npm run hello-world-single
Bench:npm run bench-single
Server:npm run hello-world-uws
Bench:npm run bench-uws

Quick runs (shorter duration):

npm run bench-quick / bench-single-quick / bench-uws-quick