Skip to content

Repository files navigation

HttpArena

Discord

HTTP framework benchmark platform.

27 test profiles. 64-core dedicated hardware. Same conditions for every framework.

View Leaderboard | Documentation | Add a Framework


PR Commands

Tag @BennyFranciscus on your PR for help with implementation or benchmark questions.

CommandDescription
/validate -f <framework>Run the 18-point validation suite
/benchmark -f <framework>Run all benchmark tests
/benchmark -f <framework> -t <test>Run a specific test
/benchmark -f <framework> --saveRun and save results (updates leaderboard on merge)
/benchmark -f <framework> -t <test> --saveRun specific test and save results

Always specify -f <framework>. Results are automatically compared against the current leaderboard.


Test Profiles

CategoryProfilesDescription
Connectionbaseline, pipelined, limited-connMixed GET/POST with query parsing (512/4K conns), 16× batched pipelining, short-lived connections that close after 10 requests
Workloadjson, json-comp, json-tls, upload, staticJSON serialization, gzip/brotli compression, HTTP/1.1 over TLS, 20 MB body ingestion, 20-file static asset serving
Databaseasync-db, crudAsync Postgres sequential scan; realistic REST API with cached reads, list, upsert, update, and optional Redis cache
Templatesfortunes *DB query + HTML template render (TechEmpower-style Fortunes). Reference-only — measures template-engine throughput, not part of the composite score
Multi-endpointapi-4, api-16Mixed baseline + JSON + async-db at CPU-budget cliffs (4 and 16 CPUs)
H/2baseline-h2, static-h2, baseline-h2c, json-h2cBaseline + static over TLS with h2 stream multiplexing; baseline + JSON over cleartext h2 (prior-knowledge, port 8082)
H/3baseline-h3, static-h3Baseline and static over QUIC with TLS 1.3
gRPCunary-grpc, unary-grpc-tls, stream-grpc, stream-grpc-tlsUnary and server-streaming gRPC over plaintext HTTP/2 and TLS
Gatewaygateway-64, gateway-h3Reverse proxy + server stack over HTTP/2 and HTTP/3 with mixed workload
Production Stackproduction-stackFour-service architecture: edge + Redis + JWT auth sidecar + server, 10K-item cache-aside, concurrent reads + writes
WebSocketecho-wsWebSocket echo throughput across connection counts

Run Locally

git clone https://github.com/MDA2AV/HttpArena.git
cd HttpArena
./scripts/validate.sh <framework># correctness check
./scripts/benchmark.sh <framework># all profiles
./scripts/benchmark.sh <framework> baseline # specific profile
./scripts/benchmark.sh <framework> --save # save results

Contributing

Framework Maintainers

Add your GitHub username to the maintainers array in your framework's meta.json to get notified when someone opens a PR that touches your framework:

"maintainers": ["your-github-username"]

Add the badge

Benchmarked on HttpArena? Add the badge to your project's README — it links to the live leaderboard and adapts to light & dark themes automatically.

[![Benchmarked by HttpArena](https://cdn.jsdelivr.net/gh/MDA2AV/httparena-badge/wordmark.svg)](https://www.http-arena.com/leaderboard/)

Prefer HTML, e.g. to set the size:

<ahref="https://www.http-arena.com/leaderboard/"><imgsrc="https://cdn.jsdelivr.net/gh/MDA2AV/httparena-badge/wordmark.svg" alt="Benchmarked by HttpArena" height="44"></a>

Benchmarked by HttpArena

About

The most complete HTTP open source benchmarking platform. Don't just say you're fast, prove it.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages