πŸ”¬ Node.js Framework Benchmark – August 2025

Recently, I conducted a performance benchmark on four backend frameworks β€” Express, Fastify, Brahma-JS (my own creation), and uWebSockets.js (uws-js). The tests were conducted using autocannon directly against each live-deployed API on a minimal EC2 t2.micro instance.

βš™οΈ Benchmark Setup:
β€’ autocannon is a Node.js-based HTTP benchmarking tool, similar to wrk, designed to generate high levels of concurrent requests.
β€’ Client-side load was generated with:
  β€“ Connections: 100
  β€“ Duration: 10s per test
  β€“ Pipelining: 50
  β€“ Workers: 2
β€’ Server environment: AWS EC2 t2.micro (1 vCPU, 1 GB RAM, EBS-backed SSD).
β€’ Since this instance has only a single CPU core (burstable), enabling clustering offers no advantage β€” all benchmarks were run in a single-process mode.

Surprisingly, Express ended up as the lowest performing candidate, while Fastify was slightly better. Brahma-JS performed impressively, though uWS remained the fastest overall.


πŸ‡ Express.js

Git: https://github.com/expressjs/express

Express is well known for its simplicity, but it's not optimized for high concurrency or raw performance.

πŸ“Š Results: 54k requests, ~3k failed (timeouts)

Express-JS Screenshot

⚑ Fastify

Git: https://github.com/fastify/fastify

Fastify is a performance-focused alternative to Express. It showed a solid improvement over Express.

πŸ“Š Results: 307k requests

Fastify-JS Screenshot

πŸŒ€ Brahma-JS (Custom Framework)

Git: https://github.com/Shyam20001/rsjs

Brahma-JS is my own minimalist, high-performance Node.js framework. It uses a lean architecture and async primitives. It performed impressively, close to uWS.

πŸ”§ Runtime & Design:
β€’ Core runtime powered by Rust Tokio (async runtime) + Hyper (HTTP engine)
β€’ Bound to Node.js via But also can be used in Deno as well as Bun. β€’ Binary-only distribution β€” no need to compile or manage dependencies
β€’ Designed as a β€œfire-and-forget” orchestrator with ultra-fast message routing
β€’ API surface aims to feel like Express/Hono while staying minimal

πŸ“Š Results: 413k requests

Brahma-JS Screenshot

πŸš€ uWebSockets.js (uws-js)

Git: https://github.com/uNetworking/uWebSockets.js

uWS is known for being one of the fastest web frameworks out there β€” built in C++ with Node.js bindings. Its performance remains stellar, though its ergonomics aren’t as friendly as others.

πŸ“Š Results: 456k requests

Ultra WebSockets Screenshot

πŸ“Š Summary

This test proves that raw performance isn’t always about using the most popular tool β€” thoughtful design and minimal overhead in frameworks like Brahma-JS or uWS can bring massive benefits in constrained environments like t2.micro.

πŸ”₯ Try Brahma-JS Right Now

Get started instantly with the NPM package:

npm i brahma-firelight
🌟 Explore on NPM

Drop a star on the Brahma-JS GitHub repo if you're curious about its design or want to try it out!