HttpArena
Frameworks
Composite ranking

HTTP/1.1 web server benchmarks

Normalized score summed across all HTTP/1.1 profiles (each profile worth 100 to its leader in the full field, so filtering does not change the numbers), per framework type. Higher is better. How it works →

Head to Head Comparison 107 frameworks
#FrameworkLanguageComposite
1dusty-tunedZig7394
2cpeakRust7347
3genhttp-ioxideC#7117
4fulmine.js - uwsLiteJS7068
5dustyZig6980
6takoRust6636
7spliffyJS6559
8morojsJS6401
9fulmine.jsJS6324
10ntexRust6146
11trillium-tunedRust6036
12fiber-tunedGo5992
13actixRust5942
14fiberGo5625
15simplew-tunedC#5611
16bunTS5481
17vertxJava5473
18flareMojo5404
19araaraOCaml5323
20micronaut-tunedJava5271
21libuvcppC++4892
22true-async-serverPHP4867
23swoolePHP4660
24genhttpC#4538
25hyper-expressJS4362
26micronautJava4349
27luteLuau4323
28trilliumRust4258
29drogonC++4246
30cutelystC++4219
31mq-bridgeRust4201
32axumRust4178
33ultimate-expressJS4167
34helidon-tunedJava4154
35micronaut-productionJava4142
36simplewC#3983
37helidon-productionJava3969
38elysiaTS3851
39ktor-tunedKotlin3771
40go-fasthttpGo3500
41quarkus-jvmJava3499
42ring-http-exchangeClojure3346
43ktorKotlin3330
44oxpeckerF#3223
45h2o-mrubyRuby3213
46carterC#3199
47ramaRust3172
48genhttp-kestrelC#3090
49hono-bunTS3083
50armeriaJava3063
51userverC++3025
52aspnet-minimal-11C#2984
53aspnet-minimalC#2945
54rocketRust2858
55fastendpointsC#2849
56codebehindC#2758
57node-h3JS2631
58roadrunnerErlang2567
59salvoRust2359
60netonKotlin2307
61joobyJava2261
62fastifyJS2246
63fletchDart2132
64echoGo2110
65mq-bridge-pyPython2106
66ginGo2098
67chiGo2037
68siskC#1999
69zincGo1957
70lapisLua1950
71aiohttpPython1940
72koaJS1866
73http4kKotlin1786
74go-stdlibGo1754
75expressJS1734
76reititClojure1732
77hono-nodeTS1699
78phoenix-banditElixir1691
79spring-bootJava1680
80vibe.dD1669
81warpHaskell1657
82hyperfPHP1640
83blackbullPython1555
84starlettePython1512
85sanicPython1491
86rageRuby1415
87humming-birdSwift1413
88litestarPython1387
89php-fpmPHP1271
90plug-cowboyElixir1268
91fastapiPython1206
92symfony-spawn-tasPHP1111
93sinatraRuby1109
94http4sScala1089
95rodaRuby1022
96robynPython855
97slimewebPython814
98watsonC#812
99hanamiRuby695
100railsRuby636
101http.jlJulia549
102mojoliciousPerl395
103flaskPython314
104bottlePython281
105kliteKotlin257
106djangoPython211
107servicestackC#176

Alpha Round, 107 entries, best first. The interactive board - per-profile numbers, memory efficiency, the other families (HTTP/2, HTTP/3, Gateway, gRPC, WebSocket) - needs JavaScript; every entry has a page of its own, and the same rankings are published as text at /llms.txt.

What HttpArena measures

Every framework, HTTP engine and reverse proxy in the ranking above runs the same 27 test profiles - plain and pipelined requests, JSON, compression, TLS, uploads, static files, Postgres, templates and mixed endpoints - on one dedicated machine, in a container pinned to its own cores. Nothing is self-reported: the implementations are in the public repository and the raw numbers behind every row are published with them.

Questions

What is the fastest web framework?

dusty-tuned (Zig) leads the HTTP/1.1 composite with 7394, ahead of cpeak (7347) and genhttp-ioxide (7117). The composite adds a normalized score over every profile of the family, where the leader of each profile scores 100, so it ranks an entry over the whole suite instead of on one test. The sum is then reduced by 2.5% for each of routing, middleware, the request it hands you and the response it builds that the entry does not do for you, so a framework that does none of the four keeps 90% of what it scored on throughput.

Which language has the fastest web frameworks?

Zig, through dusty-tuned. The quickest entry of each language on HTTP/1.1: Zig dusty-tuned (7394), Rust cpeak (7347), C# genhttp-ioxide (7117), JS fulmine.js - uwsLite (7068), Go fiber-tuned (5992), TS bun (5481), Java vertx (5473), Mojo flare (5404).

How many web frameworks are benchmarked?

208 entries - web frameworks, HTTP engines and reverse proxies - over 27 test profiles. The ranking above is the 107 flagship and emerging frameworks scored on HTTP/1.1; engines and reverse proxies are ranked in their own league.

How are the benchmarks run?

Every entry runs in a container on the same machine (AMD Ryzen Threadripper PRO 3995WX 64-Cores, 64 cores), pinned to dedicated cores, one connection count per run. Requests per second is the best of three runs; latency, CPU and memory come from that run. Round: Alpha Round.

Can I add my own framework?

Yes. Every entry is a directory in the public repository with its own Dockerfile and its own implementation of the profiles, and a pull request that adds one is benchmarked on the same machine as everything else.

Browse by language

Every entry, one page each · Head-to-head comparisons · How the benchmark works · Add a framework · The rankings as text

Results updated