Skip to main content

Benchmarks

All benchmarks were run as Node.js v24 containerized workloads, using 4 CPU cores and 4GiB RAM. Docker host running on Macbook M3 Pro 2023 36GB.

Find the benchmarks' code here

HTTP Benchmark

Requirements:

  • endpoint returning 200 and no body
  • request logging (using framework builtins, recommendations if not present, Basica recommendations if not present)

Benchmarks run with autocannon (100 requests, 10 pipelines, 40 seconds)

FrameworkStartup Time (ms)Throughput (MB/s) (p50)Requests/s (p50)Latency (ms) (p99)CPU (%) (mean)RAM (%) (mean)
Basica + Fastify125.61478395515033
Fastify135.37457275510614
NestJS1941.3799191121033
NestJS + Fastify2175.02427835810713

CRUD Benchmark

Requirements:

  • REST api with CRUD methods
  • request logging (using framework builtins, recommendations if not present, Basica recommendations if not present)
  • not found / conflict error mapping (using framework builtins, recommendations if not present, Basica recommendations if not present)
  • request validation and response serialization (using framework builtins, recommendations if not present, Basica recommendations if not present)
  • postgresql + migrations (using framework builtins, recommendations if not present, Basica recommendations if not present)

Benchmarks run with autocannon (100 requests, 10 pipelines, 40 seconds)

FrameworkStartup Time (ms)Throughput (MB/s) (p50)Requests/s (p50)Latency (ms) (p99)CPU (%) (mean)RAM (%) (mean)
Basica + Fastify15654.2225195421209
Fastify8753.5024855141198
NestJS33722.47841221311911
NestJS + Fastify33222.92876203811912