explaingit

the-benchmarker/web-frameworks

7,085PHPAudience · developerComplexity · 3/5Setup · hard

TLDR

A benchmark suite that measures how many HTTP requests per second popular web frameworks can handle across many programming languages, giving developers a performance data point when choosing a stack.

Mindmap

mindmap
  root((web-frameworks))
    What it measures
      Requests per second
      Latency
    How it works
      Docker containers
      wrk load generator
      PostgreSQL storage
    Local dependencies
      Ruby scripts
      Docker
      PostgreSQL
      wrk and jq
    Use cases
      Framework selection
      Performance comparison
      Contributing new entries
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Compare raw HTTP throughput across frameworks like Express, FastAPI, or Gin before choosing a stack for a new API server.

USE CASE 2

Run the benchmark locally for a specific framework to verify whether published numbers hold on your own hardware.

USE CASE 3

Add a new framework to the suite by following the contributing guide and submitting standardized results.

Tech stack

RubyDockerPostgreSQLPHPwrk

Getting it running

Difficulty · hard Time to first run · 1h+

Requires Ruby, wrk, Docker, PostgreSQL, and jq all installed, on macOS, docker-machine is also needed, making local setup non-trivial.

In plain English

This repository measures and compares the performance of web frameworks across many programming languages. The central question it tries to answer is which framework can handle the most HTTP requests per second under a standard workload. The results give developers a data point when choosing which language and framework to use for a new server-side project. The approach is to run each framework inside its own Docker container so every framework is tested in the same kind of isolated environment. A tool called wrk generates HTTP load against each container, and the resulting numbers (requests per second, latency, and similar figures) get stored in a PostgreSQL database for consistent record-keeping and later comparison. Getting the benchmark running locally requires a few dependencies: Ruby (because the benchmarking scripts are written in Ruby), wrk itself, Docker, PostgreSQL, and jq for processing Docker metadata. On macOS, docker-machine is also needed to allow Docker usage for each framework. Once the dependencies are in place, a bundle install and rake config call set things up, and individual frameworks can be built and tested by pointing make at the framework's own Makefile inside its subdirectory. Each framework in the collection, such as PHP's Lumen, lives in its own folder and includes the Makefile targets needed to build its container and run the benchmarks against it. The repository covers a range of languages and frameworks, and a contributing guide describes how to add a new one. Published results are available at the project's benchmark website rather than in the README itself, so checking the external site is the quickest way to see which framework leads current rankings.

Copy-paste prompts

Prompt 1
I want to run the the-benchmarker/web-frameworks benchmark for Node.js on my machine. Walk me through installing dependencies and running a test.
Prompt 2
How do I add a new Python FastAPI entry to the-benchmarker/web-frameworks following the contributing guide?
Prompt 3
Where do I find the published benchmark results and how do I read the requests-per-second and latency numbers?
Prompt 4
How do I run the benchmark for PHP Lumen and Go Fiber side by side so I can compare their results directly?
Open on GitHub → Explain another repo

← the-benchmarker on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.