Leaderboard
Leaderboard
Round
Current
i9 14900K
+
Composite
HTTP/1.1
HTTP/2
HTTP/3
Filters + (expand)
Lang
(Toggle)
All
C
C#
C++
Go
Java
JS
Lua
Python
Rust
TS
Type
(Toggle)
Realistic
Stripped
Filter
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
Each connection sends one request at a time over persistent keep-alive connections with no CPU restrictions. Mixed GET and POST requests to
/baseline11 with query parameter parsing, Content-Length bodies, and chunked Transfer-Encoding. Best of 3 runs, 12 threads.Conn
Best
512
4096
16384
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
512
3,433,136
274.92MB/s
546
2xx: 17,165,682
3xx: 0
4xx: 546
5xx: 0
6165.4%
4.1GiB
149us
200us
π₯
h2o
C
h2o
realistic
512
2,735,734
268.63MB/s
β
2xx: 13,678,671
3xx: 0
4xx: 0
5xx: 0
6556.6%
69.7MiB
186us
1.24ms
π₯
nginx
C
nginx
realistic
512
2,547,790
344.83MB/s
β
2xx: 12,738,954
3xx: 0
4xx: 0
5xx: 0
6544.1%
3.5GiB
200us
1.48ms
4
hyper
Rust
hyper
realistic
512
2,405,404
270.57MB/s
β
2xx: 12,027,022
3xx: 0
4xx: 0
5xx: 0
6800.5%
49.2MiB
212us
1.57ms
5
ntex
Rust
ntex-tokio
realistic
512
2,315,469
258.62MB/s
β
2xx: 11,600,502
3xx: 0
4xx: 0
5xx: 0
7026.6%
299.4MiB
220us
1.34ms
6
actix
Rust
actix
realistic
512
2,250,439
285.30MB/s
β
2xx: 11,252,196
3xx: 0
4xx: 0
5xx: 0
7010.6%
127.2MiB
226us
1.42ms
7
drogon
C++
drogon
realistic
512
2,005,638
286.82MB/s
β
2xx: 10,028,192
3xx: 0
4xx: 0
5xx: 0
7175.2%
75.7MiB
254us
1.65ms
8
quarkus-jvm
Java
Netty
realistic
512
1,672,924
161.08MB/s
β
2xx: 8,364,623
3xx: 0
4xx: 0
5xx: 0
7390.3%
8.7GiB
305us
1.65ms
9
h2o-mruby
C
h2o
realistic
512
1,634,935
246.27MB/s
β
2xx: 8,174,677
3xx: 0
4xx: 0
5xx: 0
7661.0%
251.2MiB
314us
1.78ms
10
bun
TS
JSC
realistic
512
1,510,578
148.33MB/s
β
2xx: 7,552,891
3xx: 0
4xx: 0
5xx: 0
7921.5%
2.3GiB
338us
2.20ms
11
aspnet-minimal
C#
Kestrel
realistic
512
1,361,536
184.32MB/s
β
2xx: 6,807,680
3xx: 0
4xx: 0
5xx: 0
6038.3%
295.9MiB
375us
2.59ms
12
go-fasthttp
Go
fasthttp
realistic
512
1,318,737
155.90MB/s
β
2xx: 6,593,686
3xx: 0
4xx: 0
5xx: 0
7076.8%
98.3MiB
388us
1.59ms
13
nginx-openresty
Lua
openresty
realistic
512
1,278,558
201.12MB/s
β
2xx: 6,392,792
3xx: 0
4xx: 0
5xx: 0
8813.6%
3.9GiB
399us
2.22ms
14
node
JS
V8
realistic
512
1,210,327
184.62MB/s
β
2xx: 6,051,635
3xx: 0
4xx: 0
5xx: 0
8877.3%
2.3GiB
423us
3.27ms
15
genhttp
C#
Kestrel
realistic
512
1,135,305
129.89MB/s
β
2xx: 5,676,527
3xx: 0
4xx: 0
5xx: 0
5745.5%
284.1MiB
450us
2.61ms
16
deno
TS
V8
realistic
512
1,051,875
140.40MB/s
β
2xx: 5,259,377
3xx: 0
4xx: 0
5xx: 0
6770.0%
10.7GiB
486us
9.93ms
17
salvo
Rust
Salvo
realistic
512
988,768
166.86MB/s
β
2xx: 4,943,841
3xx: 0
4xx: 0
5xx: 0
7357.5%
118.0MiB
517us
1.43ms
18
caddy
Go
caddy
realistic
512
552,153
62.11MB/s
β
2xx: 2,760,766
3xx: 0
4xx: 0
5xx: 0
5116.6%
740.5MiB
930us
11.20ms
19
spring-jvm-jetty
Java
Jetty
realistic
512
507,131
77.34MB/s
β
2xx: 2,535,658
3xx: 0
4xx: 0
5xx: 0
6821.1%
4.0GiB
879us
4.54ms
20
express
JS
express
realistic
512
469,464
72.95MB/s
β
2xx: 2,347,324
3xx: 0
4xx: 0
5xx: 0
10464.6%
9.6GiB
1.09ms
6.55ms
21
spring-jvm
Java
Tomcat
realistic
512
268,770
34.64MB/s
β
2xx: 1,343,853
3xx: 0
4xx: 0
5xx: 0
2246.1%
2.2GiB
1.90ms
3.93ms
22
flask
Python
gunicorn
realistic
512
120,814
16.12MB/s
β
2xx: 604,070
3xx: 0
4xx: 0
5xx: 0
5032.0%
708.3MiB
4.08ms
8.20ms
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
4,096
3,429,463
274.65MB/s
1,521
2xx: 17,147,316
3xx: 0
4xx: 1,521
5xx: 0
6171.7%
4.2GiB
1.19ms
1.36ms
π₯
h2o
C
h2o
realistic
4,096
3,162,875
310.46MB/s
β
2xx: 15,814,379
3xx: 0
4xx: 0
5xx: 0
6850.2%
91.8MiB
1.29ms
8.35ms
π₯
nginx
C
nginx
realistic
4,096
3,028,812
409.95MB/s
β
2xx: 15,144,062
3xx: 0
4xx: 0
5xx: 0
6668.0%
3.5GiB
1.35ms
9.71ms
4
hyper
Rust
hyper
realistic
4,096
2,942,685
330.92MB/s
β
2xx: 14,713,429
3xx: 0
4xx: 0
5xx: 0
7103.1%
122.8MiB
1.39ms
10.00ms
5
ntex
Rust
ntex-tokio
realistic
4,096
2,925,611
326.39MB/s
β
2xx: 14,657,313
3xx: 0
4xx: 0
5xx: 0
6891.1%
532.7MiB
1.40ms
10.40ms
6
actix
Rust
actix
realistic
4,096
2,711,945
343.67MB/s
β
2xx: 13,559,729
3xx: 0
4xx: 0
5xx: 0
7291.6%
166.2MiB
1.51ms
9.60ms
7
drogon
C++
drogon
realistic
4,096
2,381,216
340.33MB/s
β
2xx: 11,906,080
3xx: 0
4xx: 0
5xx: 0
7843.0%
128.9MiB
1.72ms
8.76ms
8
quarkus-jvm
Java
Netty
realistic
4,096
2,102,344
202.40MB/s
β
2xx: 10,511,720
3xx: 0
4xx: 0
5xx: 0
8136.2%
10.4GiB
1.95ms
9.55ms
9
bun
TS
JSC
realistic
4,096
1,956,298
192.04MB/s
β
2xx: 9,781,491
3xx: 0
4xx: 0
5xx: 0
8295.5%
2.0GiB
2.08ms
13.70ms
10
h2o-mruby
C
h2o
realistic
4,096
1,786,456
269.06MB/s
β
2xx: 8,932,280
3xx: 0
4xx: 0
5xx: 0
7885.4%
249.4MiB
574us
3.65ms
11
go-fasthttp
Go
fasthttp
realistic
4,096
1,467,403
173.44MB/s
β
2xx: 7,337,019
3xx: 0
4xx: 0
5xx: 0
6685.4%
183.7MiB
2.78ms
7.11ms
12
aspnet-minimal
C#
Kestrel
realistic
4,096
1,372,349
185.78MB/s
β
2xx: 6,861,746
3xx: 0
4xx: 0
5xx: 0
6371.6%
393.5MiB
2.57ms
9.67ms
13
nginx-openresty
Lua
openresty
realistic
4,096
1,299,685
204.63MB/s
β
2xx: 6,511,426
3xx: 0
4xx: 0
5xx: 0
9400.5%
4.0GiB
3.15ms
11.10ms
14
deno
TS
V8
realistic
4,096
1,278,759
170.66MB/s
β
2xx: 6,393,799
3xx: 0
4xx: 0
5xx: 0
7353.4%
32.5GiB
3.08ms
38.60ms
15
node
JS
V8
realistic
4,096
1,272,280
194.05MB/s
β
2xx: 6,361,401
3xx: 0
4xx: 0
5xx: 0
8942.4%
2.4GiB
2.60ms
10.80ms
16
genhttp
C#
Kestrel
realistic
4,096
1,229,563
140.65MB/s
β
2xx: 6,147,815
3xx: 0
4xx: 0
5xx: 0
6536.9%
365.9MiB
1.86ms
8.48ms
17
salvo
Rust
Salvo
realistic
4,096
1,123,836
189.64MB/s
β
2xx: 5,619,183
3xx: 0
4xx: 0
5xx: 0
8218.0%
310.3MiB
3.65ms
14.70ms
18
caddy
Go
caddy
realistic
4,096
582,248
65.50MB/s
β
2xx: 2,911,241
3xx: 0
4xx: 0
5xx: 0
6882.6%
581.4MiB
6.98ms
55.30ms
19
spring-jvm-jetty
Java
Jetty
realistic
4,096
537,213
81.93MB/s
β
2xx: 2,686,069
3xx: 0
4xx: 0
5xx: 0
6978.1%
6.8GiB
3.68ms
13.10ms
20
express
JS
express
realistic
4,096
458,658
71.25MB/s
β
2xx: 2,293,291
3xx: 0
4xx: 0
5xx: 0
10341.1%
10.0GiB
7.44ms
23.00ms
21
spring-jvm
Java
Tomcat
realistic
4,096
216,980
27.96MB/s
β
2xx: 1,084,902
3xx: 0
4xx: 0
5xx: 0
1962.0%
2.5GiB
18.87ms
28.10ms
22
flask
Python
gunicorn
realistic
4,096
128,974
17.21MB/s
β
2xx: 644,870
3xx: 0
4xx: 0
5xx: 0
5855.6%
2.2GiB
17.31ms
21.30ms
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
16,384
3,188,822
255.71MB/s
1,305
2xx: 15,976,003
3xx: 0
4xx: 1,305
5xx: 0
6376.2%
4.3GiB
4.62ms
7.04ms
π₯
h2o
C
h2o
realistic
16,384
2,904,051
285.04MB/s
β
2xx: 14,520,259
3xx: 0
4xx: 0
5xx: 0
6368.4%
208.9MiB
5.47ms
21.50ms
π₯
nginx
C
nginx
realistic
16,384
2,812,000
380.59MB/s
β
2xx: 14,060,003
3xx: 0
4xx: 0
5xx: 0
6429.0%
3.6GiB
5.61ms
24.40ms
4
hyper
Rust
hyper
realistic
16,384
2,695,659
303.08MB/s
β
2xx: 13,478,297
3xx: 0
4xx: 0
5xx: 0
7113.0%
390.6MiB
5.90ms
29.80ms
5
ntex
Rust
ntex-tokio
realistic
16,384
2,690,750
299.98MB/s
β
2xx: 13,453,753
3xx: 0
4xx: 0
5xx: 0
7095.4%
1.5GiB
5.36ms
34.10ms
6
actix
Rust
actix
realistic
16,384
2,549,614
323.54MB/s
β
2xx: 12,773,570
3xx: 0
4xx: 0
5xx: 0
7384.3%
479.5MiB
5.65ms
31.90ms
7
drogon
C++
drogon
realistic
16,384
2,197,587
314.06MB/s
β
2xx: 10,987,938
3xx: 0
4xx: 0
5xx: 0
7525.8%
321.4MiB
7.21ms
32.90ms
8
quarkus-jvm
Java
Netty
realistic
16,384
1,984,020
190.94MB/s
β
2xx: 9,920,102
3xx: 0
4xx: 0
5xx: 0
8238.5%
10.6GiB
7.24ms
37.70ms
9
bun
TS
JSC
realistic
16,384
1,855,192
182.31MB/s
β
2xx: 9,331,616
3xx: 0
4xx: 0
5xx: 0
8481.4%
2.5GiB
8.55ms
54.70ms
10
h2o-mruby
C
h2o
realistic
16,384
1,725,039
259.84MB/s
β
2xx: 8,625,197
3xx: 0
4xx: 0
5xx: 0
8245.8%
252.8MiB
568us
3.80ms
11
go-fasthttp
Go
fasthttp
realistic
16,384
1,348,050
159.36MB/s
β
2xx: 6,740,252
3xx: 0
4xx: 0
5xx: 0
6299.1%
341.3MiB
5.29ms
9.90ms
12
nginx-openresty
Lua
openresty
realistic
16,384
1,272,111
200.06MB/s
β
2xx: 6,360,558
3xx: 0
4xx: 0
5xx: 0
9053.2%
4.1GiB
12.37ms
54.70ms
13
aspnet-minimal
C#
Kestrel
realistic
16,384
1,215,695
164.53MB/s
β
2xx: 6,078,479
3xx: 0
4xx: 0
5xx: 0
6229.1%
705.6MiB
7.57ms
25.10ms
14
node
JS
V8
realistic
16,384
1,155,543
176.30MB/s
β
2xx: 5,789,272
3xx: 0
4xx: 0
5xx: 0
8123.0%
3.0GiB
10.29ms
41.10ms
15
genhttp
C#
Kestrel
realistic
16,384
1,064,295
121.73MB/s
β
2xx: 5,321,476
3xx: 0
4xx: 0
5xx: 0
6669.9%
865.8MiB
7.08ms
27.40ms
16
deno
TS
V8
realistic
16,384
947,836
126.46MB/s
β
2xx: 4,739,184
3xx: 0
4xx: 0
5xx: 0
7668.8%
30.3GiB
14.24ms
83.70ms
17
salvo
Rust
Salvo
realistic
16,384
916,704
154.68MB/s
β
2xx: 4,583,521
3xx: 0
4xx: 0
5xx: 0
7807.6%
875.8MiB
15.67ms
40.10ms
18
caddy
Go
caddy
realistic
16,384
612,489
68.90MB/s
β
2xx: 3,062,449
3xx: 0
4xx: 0
5xx: 0
6585.7%
1.4GiB
22.93ms
190.50ms
19
spring-jvm-jetty
Java
Jetty
realistic
16,384
512,033
78.08MB/s
β
2xx: 2,560,168
3xx: 0
4xx: 0
5xx: 0
6668.7%
8.2GiB
21.27ms
41.20ms
20
express
JS
express
realistic
16,384
419,093
65.12MB/s
β
2xx: 2,095,466
3xx: 0
4xx: 0
5xx: 0
9448.8%
10.7GiB
27.07ms
66.20ms
21
spring-jvm
Java
Tomcat
realistic
16,384
181,901
23.41MB/s
β
2xx: 909,508
3xx: 0
4xx: 0
5xx: 0
1841.3%
4.3GiB
79.18ms
108.80ms
22
flask
Python
gunicorn
realistic
16,384
50,971
6.81MB/s
β
2xx: 255,876
3xx: 0
4xx: 0
5xx: 0
1805.2%
724.2MiB
49.33ms
632.20ms
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
Each connection is closed and re-established after 10 requests, forcing repeated TCP handshakes. Same mixed GET/POST workload as baseline. Measures how efficiently a framework handles connection setup and teardown β important for real-world scenarios where clients don't maintain long-lived connections.
Conn
Best
512
4096
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
TCP Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
TCP Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
h2o
C
h2o
realistic
512
808,780
1,617,816
158.81MB/s
β
2xx: 8,089,083
3xx: 0
4xx: 0
5xx: 0
5156.7%
70.6MiB
299us
2.44ms
π₯
nginx
C
nginx
realistic
512
765,241
1,530,493
207.19MB/s
β
2xx: 7,652,468
3xx: 0
4xx: 0
5xx: 0
5331.5%
3.5GiB
314us
2.75ms
π₯
hyper
Rust
hyper
realistic
512
746,648
1,493,614
168.00MB/s
β
2xx: 7,468,074
3xx: 0
4xx: 0
5xx: 0
5326.3%
99.1MiB
323us
2.51ms
4
ringzero
C
io_uring
stripped
512
651,323
1,302,979
104.35MB/s
111
2xx: 6,514,897
3xx: 0
4xx: 111
5xx: 0
2874.1%
4.1GiB
377us
3.19ms
5
drogon
C++
drogon
realistic
512
636,988
1,274,011
182.20MB/s
β
2xx: 6,370,056
3xx: 0
4xx: 0
5xx: 0
5679.2%
86.0MiB
381us
2.61ms
6
ntex
Rust
ntex-tokio
realistic
512
636,147
1,272,262
141.91MB/s
β
2xx: 6,361,312
3xx: 0
4xx: 0
5xx: 0
5486.5%
391.8MiB
383us
2.41ms
7
actix
Rust
actix
realistic
512
533,237
1,066,449
135.22MB/s
β
2xx: 5,332,247
3xx: 0
4xx: 0
5xx: 0
4844.4%
128.3MiB
463us
3.80ms
8
bun
TS
JSC
realistic
512
487,318
974,616
95.71MB/s
β
2xx: 4,873,083
3xx: 0
4xx: 0
5xx: 0
6379.8%
2.0GiB
505us
4.28ms
9
nginx-openresty
Lua
openresty
realistic
512
435,360
870,719
136.90MB/s
β
2xx: 4,353,596
3xx: 0
4xx: 0
5xx: 0
7196.4%
4.0GiB
571us
3.66ms
10
salvo
Rust
Salvo
realistic
512
270,775
541,515
91.38MB/s
β
2xx: 2,707,575
3xx: 0
4xx: 0
5xx: 0
2630.7%
111.2MiB
935us
7.54ms
11
quarkus-jvm
Java
Netty
realistic
512
264,994
529,991
51.03MB/s
β
2xx: 2,649,959
3xx: 0
4xx: 0
5xx: 0
2912.5%
10.1GiB
956us
9.39ms
12
aspnet-minimal
C#
Kestrel
realistic
512
232,569
465,143
62.97MB/s
β
2xx: 2,325,719
3xx: 0
4xx: 0
5xx: 0
3394.0%
152.7MiB
1.09ms
11.10ms
13
genhttp
C#
Kestrel
realistic
512
227,180
454,422
51.98MB/s
β
2xx: 2,272,111
3xx: 0
4xx: 0
5xx: 0
3633.1%
169.4MiB
1.12ms
11.30ms
14
spring-jvm-jetty
Java
Jetty
realistic
512
206,888
413,976
63.15MB/s
β
2xx: 2,069,881
3xx: 0
4xx: 0
5xx: 0
6142.7%
4.8GiB
956us
5.13ms
15
caddy
Go
caddy
realistic
512
141,324
282,634
31.79MB/s
β
2xx: 1,413,174
3xx: 0
4xx: 0
5xx: 0
5105.6%
193.7MiB
1.80ms
19.90ms
16
node
JS
V8
realistic
512
133,747
267,497
40.80MB/s
β
2xx: 1,337,486
3xx: 0
4xx: 0
5xx: 0
2930.7%
2.2GiB
1.90ms
19.60ms
17
h2o-mruby
C
h2o
realistic
512
114,907
229,627
34.57MB/s
β
2xx: 1,150,432
3xx: 0
4xx: 0
5xx: 0
7719.4%
196.8MiB
2.19ms
10.20ms
18
deno
TS
V8
realistic
512
111,841
223,279
29.78MB/s
β
2xx: 1,118,630
3xx: 0
4xx: 0
5xx: 0
6391.3%
8.8GiB
2.08ms
17.70ms
19
express
JS
express
realistic
512
107,321
214,634
33.35MB/s
β
2xx: 1,073,171
3xx: 0
4xx: 0
5xx: 0
5311.7%
8.6GiB
2.37ms
23.50ms
20
spring-jvm
Java
Tomcat
realistic
512
104,554
209,198
26.92MB/s
β
2xx: 1,045,994
3xx: 0
4xx: 0
5xx: 0
1995.5%
1.7GiB
2.44ms
4.51ms
21
go-fasthttp
Go
fasthttp
realistic
512
73,932
147,847
17.47MB/s
β
2xx: 739,236
3xx: 0
4xx: 0
5xx: 0
3915.7%
100.2MiB
3.45ms
78.80ms
22
flask
Python
gunicorn
realistic
512
605,475
121,095
16.16MB/s
β
2xx: 605,479
3xx: 0
4xx: 0
5xx: 0
5135.3%
727.3MiB
4.08ms
7.29ms
#
Framework
Lang
Engine
Type
Conn
TCP Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
h2o
C
h2o
realistic
4,096
1,030,653
2,063,170
202.52MB/s
β
2xx: 10,315,854
3xx: 0
4xx: 0
5xx: 0
6067.2%
114.2MiB
1.86ms
8.43ms
π₯
hyper
Rust
hyper
realistic
4,096
1,003,489
2,010,095
226.10MB/s
β
2xx: 10,050,477
3xx: 0
4xx: 0
5xx: 0
6308.6%
236.8MiB
1.96ms
10.10ms
π₯
nginx
C
nginx
realistic
4,096
982,995
1,969,362
266.56MB/s
β
2xx: 9,846,812
3xx: 0
4xx: 0
5xx: 0
6032.7%
3.5GiB
1.94ms
10.30ms
4
drogon
C++
drogon
realistic
4,096
852,199
1,704,404
243.58MB/s
β
2xx: 8,522,021
3xx: 0
4xx: 0
5xx: 0
6790.1%
138.0MiB
2.34ms
27.20ms
5
ringzero
C
io_uring
stripped
4,096
740,923
1,481,855
118.65MB/s
119
2xx: 7,409,277
3xx: 0
4xx: 119
5xx: 0
3615.4%
4.2GiB
2.69ms
27.00ms
6
bun
TS
JSC
realistic
4,096
692,844
1,388,768
136.31MB/s
β
2xx: 6,943,843
3xx: 0
4xx: 0
5xx: 0
7184.0%
2.4GiB
2.85ms
19.30ms
7
ntex
Rust
ntex-tokio
realistic
4,096
631,610
1,263,644
140.93MB/s
β
2xx: 6,318,224
3xx: 0
4xx: 0
5xx: 0
5209.0%
478.8MiB
3.19ms
30.20ms
8
nginx-openresty
Lua
openresty
realistic
4,096
570,442
1,141,993
179.87MB/s
β
2xx: 5,721,385
3xx: 0
4xx: 0
5xx: 0
8213.3%
4.0GiB
3.50ms
19.20ms
9
actix
Rust
actix
realistic
4,096
516,151
1,032,228
130.88MB/s
β
2xx: 5,161,140
3xx: 0
4xx: 0
5xx: 0
4798.5%
126.7MiB
3.94ms
41.10ms
10
go-fasthttp
Go
fasthttp
realistic
4,096
316,948
636,185
75.21MB/s
β
2xx: 3,180,926
3xx: 0
4xx: 0
5xx: 0
7192.0%
601.3MiB
6.38ms
66.80ms
11
quarkus-jvm
Java
Netty
realistic
4,096
281,029
562,085
54.12MB/s
β
2xx: 2,810,426
3xx: 0
4xx: 0
5xx: 0
3381.9%
5.4GiB
7.21ms
74.60ms
12
salvo
Rust
Salvo
realistic
4,096
272,538
544,848
91.94MB/s
β
2xx: 2,724,242
3xx: 0
4xx: 0
5xx: 0
2467.8%
181.3MiB
7.45ms
73.80ms
13
aspnet-minimal
C#
Kestrel
realistic
4,096
230,570
461,129
62.42MB/s
β
2xx: 2,305,648
3xx: 0
4xx: 0
5xx: 0
3435.9%
161.3MiB
1.34ms
11.80ms
14
spring-jvm-jetty
Java
Jetty
realistic
4,096
224,227
449,606
68.54MB/s
β
2xx: 2,248,031
3xx: 0
4xx: 0
5xx: 0
6400.6%
6.8GiB
3.38ms
16.80ms
15
genhttp
C#
Kestrel
realistic
4,096
221,963
443,922
50.78MB/s
β
2xx: 2,219,610
3xx: 0
4xx: 0
5xx: 0
3533.7%
181.8MiB
1.25ms
12.30ms
16
deno
TS
V8
realistic
4,096
174,614
351,849
46.96MB/s
β
2xx: 1,762,765
3xx: 0
4xx: 0
5xx: 0
6148.8%
13.9GiB
9.46ms
78.60ms
17
h2o-mruby
C
h2o
realistic
4,096
166,659
333,515
50.29MB/s
β
2xx: 1,670,914
3xx: 0
4xx: 0
5xx: 0
4068.9%
240.1MiB
11.91ms
95.70ms
18
caddy
Go
caddy
realistic
4,096
141,572
283,120
31.85MB/s
β
2xx: 1,415,600
3xx: 0
4xx: 0
5xx: 0
5042.9%
204.3MiB
14.27ms
147.70ms
19
node
JS
V8
realistic
4,096
133,893
267,806
40.85MB/s
β
2xx: 1,339,031
3xx: 0
4xx: 0
5xx: 0
2815.2%
2.2GiB
2.25ms
20.20ms
20
express
JS
express
realistic
4,096
107,139
214,261
33.29MB/s
β
2xx: 1,071,307
3xx: 0
4xx: 0
5xx: 0
5383.9%
8.6GiB
3.07ms
25.10ms
21
spring-jvm
Java
Tomcat
realistic
4,096
78,290
160,342
20.64MB/s
β
2xx: 801,713
3xx: 0
4xx: 0
5xx: 0
1690.5%
2.8GiB
25.39ms
36.80ms
22
flask
Python
gunicorn
realistic
4,096
551,955
110,392
14.73MB/s
β
2xx: 551,960
3xx: 0
4xx: 0
5xx: 0
5697.9%
2.2GiB
20.39ms
22.10ms
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
Each request hits
GET /json. The server loads a 50-item dataset at startup, computes a derived total field per item, and returns the full result as a JSON response (~10 KB). Measures object allocation, JSON serialization performance, and framework response overhead β the typical workload of a real-world API.Conn
Best
4096
16384
32768
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ntex
Rust
ntex-tokio
realistic
4,096
1,229,268
9.74GB/s
β
2xx: 6,146,341
3xx: 0
4xx: 0
5xx: 0
8910.0%
559.9MiB
1.74ms
10.60ms
π₯
nginx
C
nginx
realistic
4,096
1,181,287
9.50GB/s
β
2xx: 5,906,435
3xx: 0
4xx: 0
5xx: 0
5161.9%
3.5GiB
1.12ms
8.19ms
π₯
hyper
Rust
hyper
realistic
4,096
1,169,263
9.27GB/s
β
2xx: 5,846,317
3xx: 0
4xx: 0
5xx: 0
9193.9%
173.1MiB
1.99ms
9.07ms
4
actix
Rust
actix
realistic
4,096
1,125,751
8.92GB/s
β
2xx: 5,628,759
3xx: 0
4xx: 0
5xx: 0
9021.8%
200.6MiB
2.19ms
8.48ms
5
h2o
C
h2o
realistic
4,096
896,627
8.66GB/s
β
2xx: 4,483,136
3xx: 0
4xx: 0
5xx: 0
2775.7%
104.2MiB
1.03ms
4.51ms
6
salvo
Rust
Salvo
realistic
4,096
781,413
6.23GB/s
β
2xx: 3,907,066
3xx: 0
4xx: 0
5xx: 0
7277.2%
278.7MiB
4.04ms
14.10ms
7
bun
TS
JSC
realistic
4,096
764,883
6.01GB/s
β
2xx: 3,824,415
3xx: 0
4xx: 0
5xx: 0
9810.1%
2.8GiB
4.07ms
17.10ms
8
deno
TS
V8
realistic
4,096
716,489
5.66GB/s
β
2xx: 3,582,447
3xx: 0
4xx: 0
5xx: 0
8911.3%
3.5GiB
4.39ms
23.20ms
9
node
JS
V8
realistic
4,096
594,096
4.69GB/s
β
2xx: 2,970,481
3xx: 0
4xx: 0
5xx: 0
9715.5%
3.0GiB
4.52ms
15.40ms
10
quarkus-jvm
Java
Netty
realistic
4,096
544,762
4.32GB/s
β
2xx: 2,723,810
3xx: 0
4xx: 0
5xx: 0
9986.7%
10.3GiB
6.07ms
21.40ms
11
aspnet-minimal
C#
Kestrel
realistic
4,096
512,629
4.06GB/s
β
2xx: 2,563,147
3xx: 0
4xx: 0
5xx: 0
7590.6%
418.0MiB
4.53ms
18.90ms
12
genhttp
C#
Kestrel
realistic
4,096
330,948
2.61GB/s
β
2xx: 1,654,741
3xx: 0
4xx: 0
5xx: 0
6383.9%
391.9MiB
8.02ms
35.70ms
13
express
JS
express
realistic
4,096
325,290
2.57GB/s
β
2xx: 1,626,451
3xx: 0
4xx: 0
5xx: 0
10439.8%
9.9GiB
9.34ms
26.00ms
14
go-fasthttp
Go
fasthttp
realistic
4,096
311,030
2.45GB/s
β
2xx: 1,555,151
3xx: 0
4xx: 0
5xx: 0
7267.3%
716.0MiB
11.54ms
265.30ms
15
caddy
Go
caddy
realistic
4,096
308,610
2.43GB/s
β
2xx: 1,543,050
3xx: 0
4xx: 0
5xx: 0
7689.4%
1.2GiB
12.33ms
172.50ms
16
spring-jvm-jetty
Java
Jetty
realistic
4,096
297,291
2.37GB/s
β
2xx: 1,486,459
3xx: 0
4xx: 0
5xx: 0
7956.5%
7.5GiB
4.59ms
17.30ms
17
nginx-openresty
Lua
openresty
realistic
4,096
296,889
2.35GB/s
β
2xx: 1,484,449
3xx: 0
4xx: 0
5xx: 0
10687.1%
3.9GiB
12.63ms
30.30ms
18
spring-jvm
Java
Tomcat
realistic
4,096
191,727
1.53GB/s
β
2xx: 958,636
3xx: 0
4xx: 0
5xx: 0
4644.3%
4.5GiB
20.46ms
35.30ms
19
drogon
C++
drogon
realistic
4,096
142,682
1.32GB/s
β
2xx: 713,410
3xx: 0
4xx: 0
5xx: 0
12094.0%
139.5MiB
27.57ms
63.00ms
20
flask
Python
gunicorn
realistic
4,096
108,920
1000.17MB/s
β
2xx: 544,602
3xx: 0
4xx: 0
5xx: 0
8593.7%
2.2GiB
20.88ms
22.60ms
21
h2o-mruby
C
h2o
realistic
4,096
96,094
783.32MB/s
β
2xx: 480,473
3xx: 0
4xx: 0
5xx: 0
12118.2%
569.4MiB
9.82ms
19.80ms
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
nginx
C
nginx
realistic
16,384
1,533,361
12.33GB/s
β
2xx: 7,666,806
3xx: 0
4xx: 0
5xx: 0
7435.8%
3.6GiB
7.65ms
37.20ms
π₯
h2o
C
h2o
realistic
16,384
1,456,432
14.08GB/s
β
2xx: 7,282,163
3xx: 0
4xx: 0
5xx: 0
5722.5%
291.7MiB
7.92ms
23.20ms
π₯
ntex
Rust
ntex-tokio
realistic
16,384
1,229,522
9.76GB/s
β
2xx: 6,159,907
3xx: 0
4xx: 0
5xx: 0
8751.7%
1.2GiB
9.38ms
49.00ms
4
hyper
Rust
hyper
realistic
16,384
1,130,563
8.97GB/s
β
2xx: 5,675,427
3xx: 0
4xx: 0
5xx: 0
9074.4%
597.6MiB
11.38ms
55.10ms
5
actix
Rust
actix
realistic
16,384
1,035,113
8.21GB/s
β
2xx: 5,185,917
3xx: 0
4xx: 0
5xx: 0
8586.7%
618.1MiB
12.39ms
38.60ms
6
salvo
Rust
Salvo
realistic
16,384
751,379
5.99GB/s
β
2xx: 3,756,899
3xx: 0
4xx: 0
5xx: 0
6546.0%
817.7MiB
16.97ms
32.80ms
7
bun
TS
JSC
realistic
16,384
732,231
5.76GB/s
β
2xx: 3,661,157
3xx: 0
4xx: 0
5xx: 0
9057.3%
2.8GiB
19.87ms
56.90ms
8
deno
TS
V8
realistic
16,384
577,191
4.56GB/s
β
2xx: 2,885,955
3xx: 0
4xx: 0
5xx: 0
8413.6%
4.1GiB
22.56ms
67.10ms
9
node
JS
V8
realistic
16,384
541,449
4.27GB/s
β
2xx: 2,707,248
3xx: 0
4xx: 0
5xx: 0
9822.3%
3.1GiB
17.98ms
44.40ms
10
quarkus-jvm
Java
Netty
realistic
16,384
497,721
3.95GB/s
β
2xx: 2,493,587
3xx: 0
4xx: 0
5xx: 0
10244.6%
10.6GiB
26.54ms
88.80ms
11
aspnet-minimal
C#
Kestrel
realistic
16,384
465,596
3.69GB/s
β
2xx: 2,327,984
3xx: 0
4xx: 0
5xx: 0
8247.6%
780.0MiB
17.54ms
58.30ms
12
genhttp
C#
Kestrel
realistic
16,384
319,202
2.51GB/s
β
2xx: 1,596,014
3xx: 0
4xx: 0
5xx: 0
7352.6%
867.0MiB
36.84ms
104.50ms
13
caddy
Go
caddy
realistic
16,384
305,882
2.41GB/s
β
2xx: 1,529,410
3xx: 0
4xx: 0
5xx: 0
7561.9%
2.7GiB
34.97ms
924.60ms
14
express
JS
express
realistic
16,384
301,630
2.38GB/s
β
2xx: 1,508,150
3xx: 0
4xx: 0
5xx: 0
10613.4%
10.7GiB
32.15ms
75.60ms
15
nginx-openresty
Lua
openresty
realistic
16,384
288,978
2.29GB/s
β
2xx: 1,444,890
3xx: 0
4xx: 0
5xx: 0
10285.3%
4.0GiB
53.54ms
151.40ms
16
spring-jvm-jetty
Java
Jetty
realistic
16,384
287,089
2.29GB/s
β
2xx: 1,435,449
3xx: 0
4xx: 0
5xx: 0
7562.3%
10.7GiB
38.60ms
84.20ms
17
go-fasthttp
Go
fasthttp
realistic
16,384
265,535
2.09GB/s
β
2xx: 1,327,677
3xx: 0
4xx: 0
5xx: 0
8307.1%
1.6GiB
37.08ms
688.80ms
18
spring-jvm
Java
Tomcat
realistic
16,384
156,504
1.25GB/s
β
2xx: 782,524
3xx: 0
4xx: 0
5xx: 0
3812.7%
6.1GiB
90.59ms
122.50ms
19
drogon
C++
drogon
realistic
16,384
138,861
1.29GB/s
β
2xx: 694,307
3xx: 0
4xx: 0
5xx: 0
11847.1%
325.8MiB
112.03ms
205.60ms
20
h2o-mruby
C
h2o
realistic
16,384
91,814
748.40MB/s
β
2xx: 459,072
3xx: 0
4xx: 0
5xx: 0
12012.5%
576.5MiB
9.86ms
20.80ms
21
flask
Python
gunicorn
realistic
16,384
36,366
334.45MB/s
β
2xx: 182,559
3xx: 0
4xx: 0
5xx: 0
1969.5%
709.8MiB
65.56ms
470.80ms
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
actix
Rust
actix
realistic
32,768
1,008,599
8.00GB/s
β
2xx: 5,627,983
3xx: 0
4xx: 0
5xx: 0
4218.7%
1011.0MiB
14.92ms
69.40ms
π₯
h2o
C
h2o
realistic
32,768
967,336
9.35GB/s
β
2xx: 5,891,078
3xx: 0
4xx: 0
5xx: 0
3795.9%
451.4MiB
15.88ms
29.00ms
π₯
drogon
C++
drogon
realistic
32,768
933,156
8.65GB/s
β
2xx: 5,673,592
3xx: 0
4xx: 0
5xx: 0
4217.5%
642.9MiB
16.14ms
36.20ms
4
nginx
C
nginx
realistic
32,768
868,089
6.87GB/s
β
2xx: 5,113,050
3xx: 0
4xx: 0
5xx: 0
3282.8%
3.8GiB
12.27ms
20.00ms
5
ntex
Rust
ntex-tokio
realistic
32,768
824,619
6.54GB/s
β
2xx: 4,865,256
3xx: 0
4xx: 0
5xx: 0
6352.6%
2.5GiB
20.18ms
86.50ms
6
hyper
Rust
hyper
realistic
32,768
733,343
5.81GB/s
β
2xx: 4,363,391
3xx: 0
4xx: 0
5xx: 0
6051.5%
861.3MiB
18.86ms
91.50ms
7
salvo
Rust
Salvo
realistic
32,768
589,937
4.71GB/s
β
2xx: 3,610,416
3xx: 0
4xx: 0
5xx: 0
2730.2%
943.9MiB
27.04ms
31.90ms
8
caddy
Go
caddy
realistic
32,768
384,613
3.03GB/s
β
2xx: 2,303,834
3xx: 0
4xx: 0
5xx: 0
5504.6%
2.2GiB
32.56ms
184.90ms
9
quarkus-jvm
Java
Netty
realistic
32,768
383,724
3.05GB/s
β
2xx: 2,075,949
3xx: 0
4xx: 0
5xx: 0
7619.2%
10.7GiB
46.23ms
155.90ms
10
aspnet-minimal
C#
Kestrel
realistic
32,768
198,931
1.58GB/s
β
2xx: 1,207,514
3xx: 0
4xx: 0
5xx: 0
4874.2%
1011.0MiB
46.96ms
302.50ms
11
go-fasthttp
Go
fasthttp
realistic
32,768
149,159
1.18GB/s
β
2xx: 803,971
3xx: 0
4xx: 0
5xx: 0
6268.2%
1.1GiB
71.08ms
717.20ms
12
spring-jvm-jetty
Java
Jetty
realistic
32,768
122,192
999.25MB/s
β
2xx: 775,923
3xx: 0
4xx: 0
5xx: 0
3944.2%
686.6MiB
7.15ms
20.10ms
13
spring-jvm
Java
Tomcat
realistic
32,768
117,063
955.80MB/s
β
2xx: 675,455
3xx: 0
4xx: 0
5xx: 0
2711.3%
6.5GiB
66.85ms
90.00ms
14
h2o-mruby
C
h2o
realistic
32,768
61,350
894.20MB/s
β
2xx: 391,415
3xx: 0
4xx: 0
5xx: 0
403.2%
152.5MiB
202us
1.08ms
15
deno
TS
V8
realistic
32,768
32,471
262.78MB/s
β
2xx: 188,332
3xx: 0
4xx: 0
5xx: 0
843.8%
2.0GiB
7.59ms
26.30ms
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
Each request sends a 20 MB binary payload via
POST /upload. The server reads the entire body and returns its CRC32 checksum. Measures request body ingestion throughput β how efficiently a framework handles large uploads, including buffering, memory management, and I/O handling under sustained load.Conn
Best
64
256
512
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
nginx
C
nginx
realistic
64
1,132
163.62KB/s
β
2xx: 5,686
3xx: 0
4xx: 0
5xx: 0
4255.1%
5.4GiB
56.52ms
152.10ms
π₯
actix
Rust
actix
realistic
64
843
114.45KB/s
β
2xx: 4,242
3xx: 0
4xx: 0
5xx: 0
5726.0%
5.5GiB
75.62ms
135.20ms
π₯
go-fasthttp
Go
fasthttp
realistic
64
829
105.23KB/s
β
2xx: 4,165
3xx: 0
4xx: 0
5xx: 0
5846.0%
6.0GiB
77.25ms
145.40ms
4
hyper
Rust
hyper
realistic
64
602
72.95KB/s
β
2xx: 3,030
3xx: 0
4xx: 0
5xx: 0
4816.3%
3.3GiB
106.01ms
249.60ms
5
salvo
Rust
Salvo
realistic
64
586
104.80KB/s
β
2xx: 2,957
3xx: 0
4xx: 0
5xx: 0
6109.3%
3.0GiB
108.97ms
147.40ms
6
node
JS
V8
realistic
64
567
91.97KB/s
β
2xx: 2,856
3xx: 0
4xx: 0
5xx: 0
6946.5%
15.6GiB
112.60ms
150.20ms
7
drogon
C++
drogon
realistic
64
504
76.84KB/s
β
2xx: 2,523
3xx: 0
4xx: 0
5xx: 0
3281.8%
112.0MiB
126.52ms
328.60ms
8
h2o
C
h2o
realistic
64
425
45.37KB/s
β
2xx: 2,138
3xx: 0
4xx: 0
5xx: 0
4841.5%
6.8GiB
149.13ms
363.60ms
9
nginx-openresty
Lua
openresty
realistic
64
366
61.14KB/s
β
2xx: 1,832
3xx: 0
4xx: 0
5xx: 0
4728.4%
50.4GiB
173.94ms
749.40ms
10
spring-jvm-jetty
Java
Jetty
realistic
64
358
58.12KB/s
β
2xx: 1,794
3xx: 0
4xx: 0
5xx: 0
6153.6%
23.0GiB
177.19ms
342.90ms
11
quarkus-jvm
Java
Netty
realistic
64
356
37.18KB/s
β
2xx: 1,780
3xx: 0
4xx: 0
5xx: 0
7386.3%
18.8GiB
179.29ms
246.30ms
12
bun
TS
JSC
realistic
64
351
37.49KB/s
β
2xx: 1,763
3xx: 0
4xx: 0
5xx: 0
4737.0%
5.0GiB
180.62ms
516.50ms
13
caddy
Go
caddy
realistic
64
306
37.07KB/s
β
2xx: 1,535
3xx: 0
4xx: 0
5xx: 0
6558.2%
37.9GiB
207.07ms
272.40ms
14
genhttp
C#
Kestrel
realistic
64
169
20.79KB/s
β
2xx: 847
3xx: 0
4xx: 0
5xx: 0
4768.2%
23.0GiB
360.01ms
784.80ms
15
aspnet-minimal
C#
Kestrel
realistic
64
165
23.83KB/s
β
2xx: 825
3xx: 0
4xx: 0
5xx: 0
4416.0%
13.4GiB
380.27ms
853.50ms
16
ntex
Rust
ntex-tokio
realistic
64
39
4.72KB/s
β
2xx: 198
3xx: 0
4xx: 0
5xx: 0
6606.2%
2.1GiB
1.37s
1.93s
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
nginx
C
nginx
realistic
256
958
138.61KB/s
β
2xx: 4,880
3xx: 0
4xx: 0
5xx: 0
3631.8%
6.5GiB
256.82ms
660.40ms
π₯
go-fasthttp
Go
fasthttp
realistic
256
775
98.52KB/s
β
2xx: 3,934
3xx: 0
4xx: 0
5xx: 0
6342.2%
15.8GiB
319.48ms
1.66s
π₯
hyper
Rust
hyper
realistic
256
570
69.07KB/s
β
2xx: 2,885
3xx: 0
4xx: 0
5xx: 0
6105.2%
7.3GiB
324.11ms
3.12s
4
actix
Rust
actix
realistic
256
557
75.69KB/s
β
2xx: 2,804
3xx: 0
4xx: 0
5xx: 0
3083.2%
9.6GiB
440.53ms
1.99s
5
salvo
Rust
Salvo
realistic
256
548
97.97KB/s
β
2xx: 2,780
3xx: 0
4xx: 0
5xx: 0
6959.8%
8.0GiB
443.77ms
1.16s
6
node
JS
V8
realistic
256
524
85.01KB/s
β
2xx: 2,652
3xx: 0
4xx: 0
5xx: 0
8580.9%
17.4GiB
465.81ms
931.60ms
7
drogon
C++
drogon
realistic
256
490
74.65KB/s
β
2xx: 2,451
3xx: 0
4xx: 0
5xx: 0
4326.6%
239.1MiB
492.82ms
1.25s
8
nginx-openresty
Lua
openresty
realistic
256
371
62.00KB/s
β
2xx: 1,858
3xx: 0
4xx: 0
5xx: 0
10505.0%
45.5GiB
629.46ms
2.03s
9
h2o
C
h2o
realistic
256
362
38.62KB/s
β
2xx: 1,831
3xx: 0
4xx: 0
5xx: 0
8656.2%
16.6GiB
612.41ms
3.23s
10
spring-jvm-jetty
Java
Jetty
realistic
256
306
49.61KB/s
β
2xx: 1,531
3xx: 0
4xx: 0
5xx: 0
8243.5%
25.1GiB
502.91ms
1.76s
11
caddy
Go
caddy
realistic
256
269
32.59KB/s
β
2xx: 1,368
3xx: 0
4xx: 0
5xx: 0
8604.5%
64.0GiB
817.55ms
3.15s
12
bun
TS
JSC
realistic
256
264
28.15KB/s
β
2xx: 1,327
3xx: 0
4xx: 0
5xx: 0
10690.6%
9.9GiB
852.52ms
3.01s
13
aspnet-minimal
C#
Kestrel
realistic
256
179
25.98KB/s
β
2xx: 899
3xx: 0
4xx: 0
5xx: 0
5868.5%
35.4GiB
1.25s
2.70s
14
genhttp
C#
Kestrel
realistic
256
175
21.64KB/s
β
2xx: 885
3xx: 0
4xx: 0
5xx: 0
6334.5%
22.9GiB
1.21s
2.71s
15
quarkus-jvm
Java
Netty
realistic
256
141
14.74KB/s
β
2xx: 706
3xx: 0
4xx: 0
5xx: 0
6824.9%
24.7GiB
1.57s
2.32s
16
ntex
Rust
ntex-tokio
realistic
256
30
3.63KB/s
β
2xx: 152
3xx: 0
4xx: 0
5xx: 0
11793.5%
4.1GiB
2.85s
5.00s
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
nginx
C
nginx
realistic
512
901
130.32KB/s
β
2xx: 4,661
3xx: 0
4xx: 0
5xx: 0
4073.4%
9.2GiB
523.53ms
1.33s
π₯
go-fasthttp
Go
fasthttp
realistic
512
716
91.05KB/s
β
2xx: 3,655
3xx: 0
4xx: 0
5xx: 0
6080.0%
41.6GiB
588.40ms
3.54s
π₯
hyper
Rust
hyper
realistic
512
544
65.90KB/s
β
2xx: 2,754
3xx: 0
4xx: 0
5xx: 0
5836.9%
9.5GiB
418.68ms
3.33s
4
salvo
Rust
Salvo
realistic
512
519
92.96KB/s
β
2xx: 2,635
3xx: 0
4xx: 0
5xx: 0
5802.4%
11.5GiB
880.12ms
2.15s
5
actix
Rust
actix
realistic
512
504
68.53KB/s
β
2xx: 2,534
3xx: 0
4xx: 0
5xx: 0
4507.2%
14.7GiB
860.46ms
4.26s
6
node
JS
V8
realistic
512
501
81.33KB/s
β
2xx: 2,538
3xx: 0
4xx: 0
5xx: 0
8961.5%
21.1GiB
913.92ms
1.82s
7
drogon
C++
drogon
realistic
512
469
71.54KB/s
β
2xx: 2,349
3xx: 0
4xx: 0
5xx: 0
5560.6%
360.3MiB
966.15ms
2.62s
8
nginx-openresty
Lua
openresty
realistic
512
361
60.37KB/s
β
2xx: 1,813
3xx: 0
4xx: 0
5xx: 0
10620.9%
47.7GiB
1.17s
3.06s
9
h2o
C
h2o
realistic
512
334
35.57KB/s
β
2xx: 1,686
3xx: 0
4xx: 0
5xx: 0
8807.3%
24.3GiB
1.14s
4.41s
10
spring-jvm-jetty
Java
Jetty
realistic
512
323
52.38KB/s
β
2xx: 1,622
3xx: 0
4xx: 0
5xx: 0
7834.6%
29.2GiB
578.62ms
2.62s
11
caddy
Go
caddy
realistic
512
270
32.73KB/s
β
2xx: 1,360
3xx: 0
4xx: 0
5xx: 0
9611.3%
111.0GiB
1.04s
4.72s
12
bun
TS
JSC
realistic
512
251
26.78KB/s
β
2xx: 1,261
3xx: 0
4xx: 0
5xx: 0
11454.5%
13.5GiB
1.54s
4.67s
13
aspnet-minimal
C#
Kestrel
realistic
512
172
24.88KB/s
β
2xx: 861
3xx: 0
4xx: 0
5xx: 0
5951.9%
38.2GiB
2.23s
4.87s
14
genhttp
C#
Kestrel
realistic
512
167
20.57KB/s
β
2xx: 838
3xx: 0
4xx: 0
5xx: 0
6549.4%
23.6GiB
1.82s
4.61s
15
quarkus-jvm
Java
Netty
realistic
512
132
13.81KB/s
β
2xx: 662
3xx: 0
4xx: 0
5xx: 0
6747.7%
28.3GiB
2.56s
3.69s
16
ntex
Rust
ntex-tokio
realistic
512
21
2.61KB/s
β
2xx: 109
3xx: 0
4xx: 0
5xx: 0
12349.7%
5.5GiB
3.47s
4.96s
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
Requests
GET /compression with Accept-Encoding: gzip. The server loads a 6000-item dataset (~1 MB JSON) at startup and serves it gzip-compressed on the fly. Measures the throughput cost of real-time compression β only frameworks with built-in gzip support are eligible.Conn
4096
16384
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
bun
TS
JSC
realistic
4,096
15,804
3.24GB/s
β
2xx: 79,024
3xx: 0
4xx: 0
5xx: 0
11834.3%
3.3GiB
251.28ms
484.90ms
π₯
salvo
Rust
Salvo
realistic
4,096
15,030
3.50GB/s
β
2xx: 75,153
3xx: 0
4xx: 0
5xx: 0
11196.6%
2.3GiB
258.78ms
829.50ms
π₯
go-fasthttp
Go
fasthttp
realistic
4,096
14,771
2.92GB/s
β
2xx: 73,857
3xx: 0
4xx: 0
5xx: 0
11582.0%
14.4GiB
270.00ms
488.40ms
4
nginx
C
nginx
realistic
4,096
11,075
2.42GB/s
β
2xx: 55,379
3xx: 0
4xx: 0
5xx: 0
12447.2%
3.6GiB
349.51ms
554.20ms
5
h2o
C
h2o
realistic
4,096
9,542
2.44GB/s
β
2xx: 47,711
3xx: 0
4xx: 0
5xx: 0
12477.5%
158.8MiB
408.11ms
652.40ms
6
caddy
Go
caddy
realistic
4,096
8,147
1.47GB/s
β
2xx: 40,736
3xx: 0
4xx: 0
5xx: 0
11248.4%
2.7GiB
475.65ms
1.86s
7
h2o-mruby
C
h2o
realistic
4,096
7,519
1.98GB/s
β
2xx: 37,598
3xx: 0
4xx: 0
5xx: 0
11091.8%
190.7MiB
105.90ms
233.70ms
8
aspnet-minimal
C#
Kestrel
realistic
4,096
7,279
2.11GB/s
β
2xx: 36,397
3xx: 0
4xx: 0
5xx: 0
3503.3%
847.2MiB
355.73ms
2.31s
9
quarkus-jvm
Java
Netty
realistic
4,096
7,172
1.57GB/s
β
2xx: 35,861
3xx: 0
4xx: 0
5xx: 0
10094.6%
18.6GiB
531.61ms
956.20ms
10
genhttp
C#
Kestrel
realistic
4,096
6,965
2.02GB/s
β
2xx: 34,828
3xx: 0
4xx: 0
5xx: 0
3735.5%
1.7GiB
388.47ms
2.76s
11
nginx-openresty
Lua
openresty
realistic
4,096
6,947
1.52GB/s
β
2xx: 34,736
3xx: 0
4xx: 0
5xx: 0
11991.3%
3.8GiB
549.53ms
947.00ms
12
spring-jvm-jetty
Java
Jetty
realistic
4,096
3,727
647.80MB/s
β
2xx: 18,637
3xx: 0
4xx: 0
5xx: 0
10520.9%
871.0MiB
109.72ms
1.96s
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
bun
TS
JSC
realistic
16,384
15,602
3.20GB/s
β
2xx: 78,013
3xx: 0
4xx: 0
5xx: 0
11509.8%
4.1GiB
900.61ms
2.12s
π₯
salvo
Rust
Salvo
realistic
16,384
14,201
3.31GB/s
β
2xx: 71,009
3xx: 0
4xx: 0
5xx: 0
11111.7%
7.6GiB
850.33ms
2.30s
π₯
go-fasthttp
Go
fasthttp
realistic
16,384
13,736
2.72GB/s
β
2xx: 68,680
3xx: 0
4xx: 0
5xx: 0
10704.9%
50.9GiB
990.97ms
1.73s
4
nginx
C
nginx
realistic
16,384
10,913
2.39GB/s
β
2xx: 54,566
3xx: 0
4xx: 0
5xx: 0
11577.8%
3.7GiB
1.22s
2.08s
5
h2o
C
h2o
realistic
16,384
9,374
2.40GB/s
β
2xx: 46,870
3xx: 0
4xx: 0
5xx: 0
12347.2%
271.3MiB
1.38s
2.78s
6
caddy
Go
caddy
realistic
16,384
7,411
1.40GB/s
β
2xx: 37,059
3xx: 0
4xx: 0
5xx: 0
11401.0%
3.9GiB
906.58ms
3.78s
7
h2o-mruby
C
h2o
realistic
16,384
7,124
1.87GB/s
β
2xx: 35,622
3xx: 0
4xx: 0
5xx: 0
10348.8%
191.5MiB
112.15ms
290.90ms
8
nginx-openresty
Lua
openresty
realistic
16,384
6,835
1.52GB/s
β
2xx: 34,245
3xx: 0
4xx: 0
5xx: 0
11413.1%
3.9GiB
1.73s
3.72s
9
aspnet-minimal
C#
Kestrel
realistic
16,384
6,494
1.98GB/s
β
2xx: 32,474
3xx: 0
4xx: 0
5xx: 0
3297.3%
3.1GiB
859.22ms
3.26s
10
genhttp
C#
Kestrel
realistic
16,384
6,211
1.80GB/s
β
2xx: 31,057
3xx: 0
4xx: 0
5xx: 0
3788.5%
410.9MiB
344.62ms
2.99s
11
quarkus-jvm
Java
Netty
realistic
16,384
4,008
898.22MB/s
β
2xx: 20,044
3xx: 0
4xx: 0
5xx: 0
8053.2%
29.1GiB
1.59s
3.90s
12
spring-jvm-jetty
Java
Jetty
realistic
16,384
3,759
653.33MB/s
β
2xx: 18,795
3xx: 0
4xx: 0
5xx: 0
10912.2%
1017.0MiB
151.67ms
2.51s
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
Valid baseline requests interleaved with malformed noise β nonexistent paths, bad content-length, and raw binary. Only 2xx responses count. Measures resilience: how well a framework maintains throughput while rejecting garbage traffic.
Conn
Best
512
4096
16384
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
TCP Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
TCP Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
512
0
2,267,446
198.36MB/s
1,425,926
2xx: 11,337,234
3xx: 0
4xx: 1,425,926
5xx: 0
5327.1%
4.1GiB
75us
175us
π₯
h2o
C
h2o
realistic
512
197
2,068,434
230.19MB/s
1,036,483
2xx: 10,342,173
3xx: 0
4xx: 1,036,483
5xx: 0
5811.2%
60.1MiB
119us
598us
π₯
nginx
C
nginx
realistic
512
0
1,908,487
324.51MB/s
1,179,564
2xx: 9,542,439
3xx: 0
4xx: 1,179,564
5xx: 0
6072.3%
3.5GiB
134us
691us
4
hyper
Rust
hyper
realistic
512
0
1,860,089
229.08MB/s
1,267,046
2xx: 9,300,446
3xx: 0
4xx: 1,267,046
5xx: 0
5975.9%
46.1MiB
126us
614us
5
actix
Rust
actix
realistic
512
40
1,769,470
241.06MB/s
1,067,317
2xx: 8,847,350
3xx: 0
4xx: 1,067,317
5xx: 0
6428.1%
125.3MiB
139us
667us
6
ntex
Rust
ntex-tokio
realistic
512
94
1,726,689
208.66MB/s
1,027,361
2xx: 8,633,449
3xx: 0
4xx: 1,027,361
5xx: 0
6182.3%
263.8MiB
142us
656us
7
drogon
C++
drogon
realistic
512
0
1,603,417
401.74MB/s
1,270,058
2xx: 8,017,085
3xx: 0
4xx: 1,270,058
5xx: 0
6465.7%
69.5MiB
154us
765us
8
bun
TS
JSC
realistic
512
0
1,456,034
142.75MB/s
β
2xx: 7,280,170
3xx: 0
4xx: 0
5xx: 0
7494.8%
2.2GiB
211us
1.34ms
9
h2o-mruby
C
h2o
realistic
512
263
1,365,945
242.91MB/s
1,256,784
2xx: 6,829,729
3xx: 0
4xx: 1,256,784
5xx: 0
6964.9%
246.6MiB
193us
989us
10
quarkus-jvm
Java
Netty
realistic
512
0
1,316,147
158.06MB/s
1,181,859
2xx: 6,580,736
3xx: 0
4xx: 1,181,859
5xx: 0
7087.0%
9.5GiB
189us
920us
11
nginx-openresty
Lua
openresty
realistic
512
0
1,266,671
269.72MB/s
1,223,984
2xx: 6,333,356
3xx: 0
4xx: 1,223,984
5xx: 0
7652.3%
3.9GiB
211us
1.14ms
12
go-fasthttp
Go
fasthttp
realistic
512
102
1,220,870
144.08MB/s
99
2xx: 6,104,351
3xx: 0
4xx: 99
5xx: 0
7064.7%
77.9MiB
299us
1.12ms
13
node
JS
V8
realistic
512
48
1,191,279
181.49MB/s
46
2xx: 5,956,397
3xx: 0
4xx: 46
5xx: 0
8333.2%
2.2GiB
284us
1.74ms
14
deno
TS
V8
realistic
512
36
1,187,664
158.28MB/s
33
2xx: 5,938,323
3xx: 0
4xx: 33
5xx: 0
6422.8%
4.0GiB
308us
3.50ms
15
aspnet-minimal
C#
Kestrel
realistic
512
0
1,181,640
189.73MB/s
1,472,038
2xx: 5,908,200
3xx: 0
4xx: 1,472,038
5xx: 0
6180.9%
193.9MiB
231us
1.54ms
16
genhttp
C#
Kestrel
realistic
512
0
1,038,861
175.29MB/s
1,287,215
2xx: 5,194,309
3xx: 0
4xx: 1,287,215
5xx: 0
6392.8%
230.1MiB
276us
2.02ms
17
salvo
Rust
Salvo
realistic
512
0
750,065
374.99MB/s
1,161,161
2xx: 3,750,328
3xx: 0
4xx: 1,161,161
5xx: 0
3592.7%
92.3MiB
403us
1.04ms
18
caddy
Go
caddy
realistic
512
42
581,576
61.71MB/s
42
2xx: 2,907,883
3xx: 0
4xx: 42
5xx: 0
5645.6%
747.0MiB
671us
8.93ms
19
express
JS
express
realistic
512
57
349,181
91.28MB/s
499,214
2xx: 1,745,909
3xx: 0
4xx: 499,214
5xx: 0
10411.7%
9.6GiB
900us
5.74ms
20
spring-jvm-jetty
Java
Jetty
realistic
512
76
68,519
12.05MB/s
26,430
2xx: 342,599
3xx: 0
4xx: 26,430
5xx: 0
3223.9%
2.1GiB
3.19ms
13.00ms
21
spring-jvm
Java
Tomcat
realistic
512
679
10,035
3.05MB/s
26,306
2xx: 50,177
3xx: 0
4xx: 26,306
5xx: 0
1982.5%
1.8GiB
12.48ms
45.10ms
22
flask
Python
gunicorn
realistic
512
140
18
6.05KB/s
50
2xx: 90
3xx: 0
4xx: 50
5xx: 0
159.4%
641.4MiB
2.14s
4.88s
#
Framework
Lang
Engine
Type
Conn
TCP Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
4,096
0
2,887,389
259.59MB/s
2,402,116
2xx: 14,436,945
3xx: 0
4xx: 2,402,116
5xx: 0
6306.5%
4.2GiB
572us
1.25ms
π₯
h2o
C
h2o
realistic
4,096
1,622
2,789,999
316.02MB/s
1,610,446
2xx: 13,949,997
3xx: 0
4xx: 1,610,446
5xx: 0
6623.4%
92.8MiB
655us
5.03ms
π₯
hyper
Rust
hyper
realistic
4,096
819
2,650,695
321.83MB/s
1,512,110
2xx: 13,253,475
3xx: 0
4xx: 1,512,110
5xx: 0
7000.9%
118.2MiB
729us
6.06ms
4
nginx
C
nginx
realistic
4,096
1,188
2,596,039
448.99MB/s
1,739,862
2xx: 12,980,196
3xx: 0
4xx: 1,739,862
5xx: 0
7053.4%
3.5GiB
727us
6.01ms
5
ntex
Rust
ntex-tokio
realistic
4,096
988
2,529,947
307.85MB/s
1,645,731
2xx: 12,649,737
3xx: 0
4xx: 1,645,731
5xx: 0
7124.6%
468.2MiB
764us
6.45ms
6
actix
Rust
actix
realistic
4,096
1,162
2,426,089
334.41MB/s
1,689,853
2xx: 12,154,710
3xx: 0
4xx: 1,689,853
5xx: 0
6861.4%
184.2MiB
822us
6.91ms
7
drogon
C++
drogon
realistic
4,096
1,098
2,091,615
537.24MB/s
1,754,596
2xx: 10,458,075
3xx: 0
4xx: 1,754,596
5xx: 0
7470.4%
117.0MiB
986us
6.45ms
8
bun
TS
JSC
realistic
4,096
500
1,939,652
190.42MB/s
495
2xx: 9,717,658
3xx: 0
4xx: 495
5xx: 0
8309.7%
2.3GiB
1.25ms
10.50ms
9
nginx-openresty
Lua
openresty
realistic
4,096
1,205
1,910,192
419.31MB/s
2,057,577
2xx: 9,570,062
3xx: 0
4xx: 2,057,577
5xx: 0
7565.5%
4.0GiB
1.00ms
6.52ms
10
deno
TS
V8
realistic
4,096
1,017
1,810,957
241.24MB/s
1,017
2xx: 9,054,787
3xx: 0
4xx: 1,017
5xx: 0
7241.9%
4.5GiB
1.52ms
19.90ms
11
quarkus-jvm
Java
Netty
realistic
4,096
877
1,796,736
219.61MB/s
1,761,328
2xx: 8,983,681
3xx: 0
4xx: 1,761,328
5xx: 0
7928.0%
10.4GiB
1.15ms
7.32ms
12
go-fasthttp
Go
fasthttp
realistic
4,096
615
1,455,201
171.71MB/s
613
2xx: 7,276,006
3xx: 0
4xx: 613
5xx: 0
6575.7%
221.1MiB
2.15ms
5.67ms
13
node
JS
V8
realistic
4,096
782
1,337,782
203.66MB/s
773
2xx: 6,688,913
3xx: 0
4xx: 773
5xx: 0
8785.4%
2.4GiB
1.84ms
8.14ms
14
h2o-mruby
C
h2o
realistic
4,096
290
1,321,277
256.76MB/s
1,953,422
2xx: 6,606,386
3xx: 0
4xx: 1,953,422
5xx: 0
7132.8%
243.5MiB
312us
1.87ms
15
aspnet-minimal
C#
Kestrel
realistic
4,096
696
1,281,016
210.46MB/s
1,833,883
2xx: 6,405,080
3xx: 0
4xx: 1,833,883
5xx: 0
6666.0%
394.7MiB
1.47ms
7.68ms
16
genhttp
C#
Kestrel
realistic
4,096
820
1,070,861
195.71MB/s
1,670,006
2xx: 5,354,306
3xx: 0
4xx: 1,670,006
5xx: 0
6759.0%
412.7MiB
1.81ms
9.29ms
17
salvo
Rust
Salvo
realistic
4,096
719
907,626
470.85MB/s
1,485,593
2xx: 4,538,131
3xx: 0
4xx: 1,485,593
5xx: 0
5449.7%
304.5MiB
2.64ms
6.39ms
18
caddy
Go
caddy
realistic
4,096
837
640,734
67.77MB/s
837
2xx: 3,203,671
3xx: 0
4xx: 837
5xx: 0
6450.0%
954.5MiB
5.07ms
45.00ms
19
express
JS
express
realistic
4,096
823
334,336
91.03MB/s
527,864
2xx: 1,671,684
3xx: 0
4xx: 527,864
5xx: 0
10290.0%
10.2GiB
6.04ms
19.80ms
20
spring-jvm-jetty
Java
Jetty
realistic
4,096
90
36,700
7.19MB/s
26,338
2xx: 183,502
3xx: 0
4xx: 26,338
5xx: 0
3249.6%
1.7GiB
3.15ms
24.00ms
21
spring-jvm
Java
Tomcat
realistic
4,096
305
3,978
645.70KB/s
1,637
2xx: 19,893
3xx: 0
4xx: 1,637
5xx: 0
974.4%
742.4MiB
12.15ms
365.30ms
22
flask
Python
gunicorn
realistic
4,096
197
25
8.46KB/s
69
2xx: 128
3xx: 0
4xx: 69
5xx: 0
0.1%
2.2GiB
2.25ms
4.98ms
#
Framework
Lang
Engine
Type
Conn
TCP Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
16,384
0
2,655,392
249.71MB/s
3,088,080
2xx: 13,276,960
3xx: 0
4xx: 3,088,080
5xx: 0
6018.1%
4.3GiB
3.66ms
4.95ms
π₯
h2o
C
h2o
realistic
16,384
4,294
2,363,165
313.02MB/s
3,101,969
2xx: 11,815,829
3xx: 0
4xx: 3,101,969
5xx: 0
6212.4%
205.8MiB
3.63ms
17.00ms
π₯
hyper
Rust
hyper
realistic
16,384
3,276
2,300,566
302.59MB/s
2,804,806
2xx: 11,502,831
3xx: 0
4xx: 2,804,806
5xx: 0
6420.6%
421.9MiB
3.83ms
17.70ms
4
ntex
Rust
ntex-tokio
realistic
16,384
4,155
2,186,746
291.65MB/s
3,055,121
2xx: 10,933,732
3xx: 0
4xx: 3,055,121
5xx: 0
6968.8%
1.1GiB
3.54ms
16.60ms
5
nginx
C
nginx
realistic
16,384
4,492
2,178,154
465.71MB/s
3,048,772
2xx: 10,890,770
3xx: 0
4xx: 3,048,772
5xx: 0
7060.4%
3.6GiB
3.93ms
19.00ms
6
actix
Rust
actix
realistic
16,384
4,100
2,163,763
317.26MB/s
2,723,548
2xx: 10,840,456
3xx: 0
4xx: 2,723,548
5xx: 0
6578.7%
534.5MiB
3.75ms
18.60ms
7
bun
TS
JSC
realistic
16,384
4,339
1,944,471
190.52MB/s
4,339
2xx: 9,800,135
3xx: 0
4xx: 4,339
5xx: 0
8333.8%
2.3GiB
5.91ms
44.30ms
8
nginx-openresty
Lua
openresty
realistic
16,384
4,471
1,785,499
430.43MB/s
2,598,273
2xx: 8,927,496
3xx: 0
4xx: 2,598,273
5xx: 0
7757.2%
4.1GiB
4.89ms
24.20ms
9
drogon
C++
drogon
realistic
16,384
4,423
1,784,708
610.62MB/s
2,620,273
2xx: 8,923,543
3xx: 0
4xx: 2,620,273
5xx: 0
7923.1%
299.4MiB
4.90ms
25.10ms
10
quarkus-jvm
Java
Netty
realistic
16,384
3,820
1,580,736
220.10MB/s
2,566,464
2xx: 7,951,106
3xx: 0
4xx: 2,566,464
5xx: 0
7517.2%
10.7GiB
4.89ms
26.40ms
11
deno
TS
V8
realistic
16,384
3,868
1,482,316
197.84MB/s
3,868
2xx: 7,426,406
3xx: 0
4xx: 3,868
5xx: 0
7349.2%
4.8GiB
6.97ms
56.10ms
12
go-fasthttp
Go
fasthttp
realistic
16,384
1,482
1,349,042
159.17MB/s
1,577
2xx: 6,745,211
3xx: 0
4xx: 1,577
5xx: 0
6244.2%
284.6MiB
4.35ms
7.90ms
13
h2o-mruby
C
h2o
realistic
16,384
268
1,279,625
246.18MB/s
1,808,291
2xx: 6,398,126
3xx: 0
4xx: 1,808,291
5xx: 0
6695.7%
240.9MiB
278us
1.84ms
14
node
JS
V8
realistic
16,384
2,736
1,251,087
190.56MB/s
2,697
2xx: 6,255,439
3xx: 0
4xx: 2,697
5xx: 0
8224.0%
3.1GiB
6.49ms
30.10ms
15
aspnet-minimal
C#
Kestrel
realistic
16,384
2,451
1,091,915
183.24MB/s
1,752,209
2xx: 5,459,577
3xx: 0
4xx: 1,752,209
5xx: 0
7182.7%
741.0MiB
4.86ms
21.10ms
16
genhttp
C#
Kestrel
realistic
16,384
2,606
938,141
175.10MB/s
1,546,933
2xx: 4,690,707
3xx: 0
4xx: 1,546,933
5xx: 0
6606.3%
803.8MiB
5.50ms
21.60ms
17
salvo
Rust
Salvo
realistic
16,384
3,461
739,446
396.72MB/s
1,274,285
2xx: 3,697,232
3xx: 0
4xx: 1,274,285
5xx: 0
4193.3%
978.8MiB
11.53ms
15.70ms
18
caddy
Go
caddy
realistic
16,384
3,470
653,635
69.03MB/s
3,470
2xx: 3,268,177
3xx: 0
4xx: 3,470
5xx: 0
6903.3%
2.0GiB
17.08ms
109.70ms
19
express
JS
express
realistic
16,384
3,080
290,015
82.93MB/s
513,260
2xx: 1,450,076
3xx: 0
4xx: 513,260
5xx: 0
9093.7%
10.7GiB
24.49ms
62.30ms
20
spring-jvm-jetty
Java
Jetty
realistic
16,384
166
30,177
6.11MB/s
24,751
2xx: 150,886
3xx: 0
4xx: 24,751
5xx: 0
2123.9%
1.9GiB
2.80ms
9.77ms
21
spring-jvm
Java
Tomcat
realistic
16,384
245
3,690
612.52KB/s
1,713
2xx: 18,454
3xx: 0
4xx: 1,713
5xx: 0
1020.8%
948.7MiB
21.59ms
598.50ms
22
flask
Python
gunicorn
realistic
16,384
197
26
8.28KB/s
65
2xx: 132
3xx: 0
4xx: 65
5xx: 0
0.3%
2.2GiB
397.98ms
633.60ms
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
A realistic mix of request types: 3 baseline GETs, 2 baseline POSTs, 1 JSON processing, 1 SQLite DB lookup, 1 file upload (1 MB), and 2 compression requests. Connections limited to 100 requests each. Measures overall framework performance under a diverse, real-world-like workload that exercises multiple code paths simultaneously.
Conn
512
1024
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
go-fasthttp
Go
fasthttp
realistic
512
60,857
1.77GB/s
β
2xx: 304,288
3xx: 0
4xx: 0
5xx: 0
9687.8%
6.8GiB
7.99ms
73.90ms
π₯
nginx
C
nginx
realistic
512
45,387
1.94GB/s
β
2xx: 226,936
3xx: 0
4xx: 0
5xx: 0
7697.2%
3.8GiB
10.10ms
55.20ms
π₯
caddy
Go
caddy
realistic
512
41,512
872.65MB/s
β
2xx: 207,563
3xx: 0
4xx: 0
5xx: 0
8457.5%
7.0GiB
11.62ms
179.40ms
4
quarkus-jvm
Java
Netty
realistic
512
41,480
1.03GB/s
β
2xx: 207,400
3xx: 0
4xx: 0
5xx: 0
6465.9%
4.4GiB
11.70ms
196.30ms
5
bun
TS
JSC
realistic
512
37,333
2.23GB/s
461
2xx: 186,669
3xx: 0
4xx: 0
5xx: 461
9544.2%
3.8GiB
13.49ms
65.90ms
6
h2o
C
h2o
realistic
512
35,786
1.90GB/s
β
2xx: 178,932
3xx: 0
4xx: 0
5xx: 0
8660.4%
932.3MiB
13.35ms
67.60ms
7
nginx-openresty
Lua
openresty
realistic
512
26,805
860.52MB/s
β
2xx: 134,028
3xx: 0
4xx: 0
5xx: 0
8879.3%
4.7GiB
18.17ms
89.60ms
8
salvo
Rust
Salvo
realistic
512
26,158
1.02GB/s
β
2xx: 130,791
3xx: 0
4xx: 0
5xx: 0
3101.5%
889.4MiB
18.57ms
100.70ms
9
spring-jvm-jetty
Java
Jetty
realistic
512
22,420
490.57MB/s
β
2xx: 112,100
3xx: 0
4xx: 0
5xx: 0
7037.3%
6.6GiB
18.48ms
271.70ms
10
aspnet-minimal
C#
Kestrel
realistic
512
17,907
326.79MB/s
β
2xx: 89,538
3xx: 0
4xx: 0
5xx: 0
8701.7%
672.2MiB
24.71ms
285.30ms
11
genhttp
C#
Kestrel
realistic
512
17,500
356.08MB/s
β
2xx: 87,502
3xx: 0
4xx: 0
5xx: 0
7249.7%
793.9MiB
24.81ms
287.00ms
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
go-fasthttp
Go
fasthttp
realistic
1,024
101,022
2.32GB/s
β
2xx: 505,113
3xx: 0
4xx: 0
5xx: 0
11177.9%
6.3GiB
9.81ms
105.40ms
π₯
quarkus-jvm
Java
Netty
realistic
1,024
59,951
1.64GB/s
β
2xx: 299,755
3xx: 0
4xx: 0
5xx: 0
9829.2%
11.0GiB
16.28ms
263.90ms
π₯
caddy
Go
caddy
realistic
1,024
59,333
1.14GB/s
β
2xx: 296,669
3xx: 0
4xx: 0
5xx: 0
10006.5%
3.5GiB
16.66ms
483.80ms
4
nginx
C
nginx
realistic
1,024
57,028
2.18GB/s
β
2xx: 285,143
3xx: 0
4xx: 0
5xx: 0
9707.2%
3.9GiB
16.92ms
73.10ms
5
h2o
C
h2o
realistic
1,024
47,316
2.04GB/s
β
2xx: 236,583
3xx: 0
4xx: 0
5xx: 0
9575.3%
946.0MiB
20.94ms
89.50ms
6
bun
TS
JSC
realistic
1,024
40,761
2.11GB/s
496
2xx: 203,808
3xx: 0
4xx: 0
5xx: 496
10401.9%
3.9GiB
24.75ms
94.40ms
7
salvo
Rust
Salvo
realistic
1,024
33,133
1.26GB/s
β
2xx: 165,669
3xx: 0
4xx: 0
5xx: 0
3804.6%
1009.0MiB
29.47ms
136.40ms
8
nginx-openresty
Lua
openresty
realistic
1,024
30,057
945.53MB/s
β
2xx: 150,287
3xx: 0
4xx: 0
5xx: 0
10849.4%
4.5GiB
32.90ms
119.40ms
9
spring-jvm-jetty
Java
Jetty
realistic
1,024
21,844
520.73MB/s
β
2xx: 109,222
3xx: 0
4xx: 0
5xx: 0
7885.1%
3.8GiB
28.96ms
943.50ms
10
aspnet-minimal
C#
Kestrel
realistic
1,024
19,352
353.15MB/s
β
2xx: 96,760
3xx: 0
4xx: 0
5xx: 0
7914.9%
746.1MiB
43.78ms
430.60ms
11
genhttp
C#
Kestrel
realistic
1,024
19,229
371.73MB/s
β
2xx: 96,147
3xx: 0
4xx: 0
5xx: 0
8202.8%
992.9MiB
44.51ms
366.00ms
Results
Baseline
Short-lived Con.
JSON Processing
Upload (20 MB)
Compression
Noisy
Mixed Workload
Pipelined (16)
16 HTTP requests are sent back-to-back on each connection before waiting for responses. Uses a lightweight
GET /pipeline endpoint that returns a fixed response, isolating raw I/O and pipeline handling from application logic. Frameworks that batch pipelined requests from the read buffer gain a significant advantage.Conn
Best
512
4096
16384
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
512
47,284,064
3.70GB/s
β
2xx: 236,420,320
3xx: 0
4xx: 0
5xx: 0
6302.5%
4.1GiB
172us
248us
π₯
actix
Rust
actix
realistic
512
20,412,329
2.53GB/s
β
2xx: 102,061,648
3xx: 0
4xx: 0
5xx: 0
8031.0%
123.3MiB
400us
2.14ms
π₯
drogon
C++
drogon
realistic
512
20,067,491
2.80GB/s
β
2xx: 100,337,456
3xx: 0
4xx: 0
5xx: 0
8252.6%
73.7MiB
407us
2.31ms
4
ntex
Rust
ntex-tokio
realistic
512
19,069,555
2.08GB/s
β
2xx: 95,347,776
3xx: 0
4xx: 0
5xx: 0
7873.9%
247.2MiB
428us
2.04ms
5
hyper
Rust
hyper
realistic
512
15,675,088
1.72GB/s
β
2xx: 78,375,440
3xx: 0
4xx: 0
5xx: 0
9646.9%
46.0MiB
522us
2.31ms
6
quarkus-jvm
Java
Netty
realistic
512
11,634,179
1.09GB/s
β
2xx: 58,170,895
3xx: 0
4xx: 0
5xx: 0
9882.1%
10.2GiB
703us
3.85ms
7
aspnet-minimal
C#
Kestrel
realistic
512
11,264,374
1.49GB/s
β
2xx: 56,321,871
3xx: 0
4xx: 0
5xx: 0
6604.4%
205.7MiB
726us
4.01ms
8
h2o
C
h2o
realistic
512
5,069,816
497.75MB/s
β
2xx: 25,349,080
3xx: 0
4xx: 0
5xx: 0
8240.1%
57.4MiB
1.62ms
8.14ms
9
nginx
C
nginx
realistic
512
4,296,779
581.50MB/s
β
2xx: 21,483,895
3xx: 0
4xx: 0
5xx: 0
7589.7%
3.5GiB
1.90ms
11.00ms
10
salvo
Rust
Salvo
realistic
512
3,180,283
536.56MB/s
β
2xx: 15,901,417
3xx: 0
4xx: 0
5xx: 0
8317.6%
69.4MiB
2.58ms
9.01ms
11
h2o-mruby
C
h2o
realistic
512
2,977,745
448.36MB/s
β
2xx: 14,888,726
3xx: 0
4xx: 0
5xx: 0
8661.6%
255.5MiB
2.75ms
12.10ms
12
deno
TS
V8
realistic
512
2,510,084
334.92MB/s
β
2xx: 12,550,420
3xx: 0
4xx: 0
5xx: 0
6297.8%
3.7GiB
3.26ms
32.80ms
13
node
JS
V8
realistic
512
2,316,900
353.30MB/s
β
2xx: 11,584,500
3xx: 0
4xx: 0
5xx: 0
8949.1%
2.9GiB
3.54ms
14.10ms
14
nginx-openresty
Lua
openresty
realistic
512
2,248,950
353.61MB/s
β
2xx: 11,244,752
3xx: 0
4xx: 0
5xx: 0
8451.3%
3.7GiB
3.64ms
18.00ms
15
genhttp
C#
Kestrel
realistic
512
1,846,918
211.28MB/s
β
2xx: 9,234,591
3xx: 0
4xx: 0
5xx: 0
9314.8%
197.8MiB
4.43ms
25.40ms
16
express
JS
express
realistic
512
601,121
93.40MB/s
β
2xx: 3,005,606
3xx: 0
4xx: 0
5xx: 0
10394.9%
10.3GiB
13.66ms
40.30ms
17
bun
TS
JSC
realistic
512
131,948
13.12MB/s
β
2xx: 659,741
3xx: 0
4xx: 0
5xx: 0
3170.9%
2.0GiB
11.82ms
52.00ms
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
4,096
46,803,504
3.66GB/s
β
2xx: 234,017,520
3xx: 0
4xx: 0
5xx: 0
6014.3%
4.2GiB
1.39ms
1.78ms
π₯
ntex
Rust
ntex-tokio
realistic
4,096
23,317,062
2.54GB/s
β
2xx: 116,585,311
3xx: 0
4xx: 0
5xx: 0
8648.1%
528.7MiB
2.81ms
14.20ms
π₯
actix
Rust
actix
realistic
4,096
23,001,200
2.85GB/s
β
2xx: 115,006,000
3xx: 0
4xx: 0
5xx: 0
8348.8%
219.5MiB
2.84ms
14.30ms
4
drogon
C++
drogon
realistic
4,096
21,962,536
3.07GB/s
β
2xx: 109,812,680
3xx: 0
4xx: 0
5xx: 0
9024.2%
194.6MiB
2.98ms
13.40ms
5
hyper
Rust
hyper
realistic
4,096
16,273,142
1.79GB/s
β
2xx: 81,365,712
3xx: 0
4xx: 0
5xx: 0
10039.4%
129.4MiB
4.02ms
11.50ms
6
aspnet-minimal
C#
Kestrel
realistic
4,096
12,814,850
1.69GB/s
β
2xx: 64,074,254
3xx: 0
4xx: 0
5xx: 0
7542.3%
481.0MiB
4.37ms
23.40ms
7
quarkus-jvm
Java
Netty
realistic
4,096
11,380,598
1.07GB/s
β
2xx: 56,902,992
3xx: 0
4xx: 0
5xx: 0
10135.8%
10.3GiB
5.73ms
22.00ms
8
h2o
C
h2o
realistic
4,096
5,825,727
572.32MB/s
β
2xx: 29,186,894
3xx: 0
4xx: 0
5xx: 0
9047.5%
92.1MiB
11.17ms
45.80ms
9
nginx
C
nginx
realistic
4,096
3,994,991
540.75MB/s
β
2xx: 19,974,956
3xx: 0
4xx: 0
5xx: 0
7078.6%
3.5GiB
16.24ms
61.20ms
10
deno
TS
V8
realistic
4,096
3,715,242
495.56MB/s
β
2xx: 18,576,211
3xx: 0
4xx: 0
5xx: 0
6640.4%
3.9GiB
16.87ms
95.50ms
11
salvo
Rust
Salvo
realistic
4,096
3,304,422
557.50MB/s
β
2xx: 16,522,110
3xx: 0
4xx: 0
5xx: 0
8564.6%
245.1MiB
19.76ms
83.50ms
12
h2o-mruby
C
h2o
realistic
4,096
3,085,464
464.52MB/s
β
2xx: 15,427,323
3xx: 0
4xx: 0
5xx: 0
8522.6%
262.0MiB
5.32ms
22.30ms
13
nginx-openresty
Lua
openresty
realistic
4,096
3,072,748
483.81MB/s
β
2xx: 15,394,472
3xx: 0
4xx: 0
5xx: 0
8052.1%
3.7GiB
21.15ms
89.30ms
14
node
JS
V8
realistic
4,096
2,422,829
369.45MB/s
β
2xx: 12,114,147
3xx: 0
4xx: 0
5xx: 0
9020.0%
3.9GiB
21.99ms
81.80ms
15
genhttp
C#
Kestrel
realistic
4,096
2,096,516
239.79MB/s
β
2xx: 10,482,584
3xx: 0
4xx: 0
5xx: 0
9913.3%
387.6MiB
19.31ms
55.00ms
16
express
JS
express
realistic
4,096
599,050
93.06MB/s
β
2xx: 2,995,250
3xx: 0
4xx: 0
5xx: 0
10271.7%
11.5GiB
89.46ms
564.20ms
17
bun
TS
JSC
realistic
4,096
491,345
48.72MB/s
β
2xx: 2,461,642
3xx: 0
4xx: 0
5xx: 0
8616.5%
2.0GiB
106.30ms
290.90ms
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
π₯
ringzero
C
io_uring
stripped
16,384
41,623,836
3.25GB/s
β
2xx: 208,119,184
3xx: 0
4xx: 0
5xx: 0
6371.7%
4.3GiB
5.65ms
7.67ms
π₯
ntex
Rust
ntex-tokio
realistic
16,384
21,891,657
2.38GB/s
β
2xx: 109,458,288
3xx: 0
4xx: 0
5xx: 0
8808.7%
1.2GiB
10.71ms
55.00ms
π₯
actix
Rust
actix
realistic
16,384
21,410,704
2.65GB/s
β
2xx: 107,267,632
3xx: 0
4xx: 0
5xx: 0
8797.5%
689.0MiB
10.70ms
52.90ms
4
drogon
C++
drogon
realistic
16,384
18,006,061
2.52GB/s
β
2xx: 90,210,368
3xx: 0
4xx: 0
5xx: 0
8861.1%
572.8MiB
13.94ms
66.60ms
5
hyper
Rust
hyper
realistic
16,384
15,348,377
1.69GB/s
β
2xx: 76,741,888
3xx: 0
4xx: 0
5xx: 0
9369.5%
434.9MiB
16.50ms
50.90ms
6
aspnet-minimal
C#
Kestrel
realistic
16,384
11,997,627
1.59GB/s
β
2xx: 59,988,137
3xx: 0
4xx: 0
5xx: 0
7419.5%
782.9MiB
10.38ms
34.40ms
7
quarkus-jvm
Java
Netty
realistic
16,384
11,066,035
1.04GB/s
β
2xx: 55,330,176
3xx: 0
4xx: 0
5xx: 0
9897.3%
10.6GiB
20.70ms
73.40ms
8
h2o
C
h2o
realistic
16,384
5,703,778
559.91MB/s
β
2xx: 28,518,894
3xx: 0
4xx: 0
5xx: 0
9230.2%
209.4MiB
44.13ms
145.70ms
9
nginx
C
nginx
realistic
16,384
3,462,840
468.88MB/s
β
2xx: 17,348,829
3xx: 0
4xx: 0
5xx: 0
7068.0%
3.7GiB
72.08ms
295.80ms
10
salvo
Rust
Salvo
realistic
16,384
3,201,296
540.04MB/s
β
2xx: 16,006,483
3xx: 0
4xx: 0
5xx: 0
8236.6%
837.9MiB
70.40ms
254.00ms
11
h2o-mruby
C
h2o
realistic
16,384
2,925,105
440.39MB/s
β
2xx: 14,684,029
3xx: 0
4xx: 0
5xx: 0
7954.5%
261.3MiB
5.38ms
22.20ms
12
nginx-openresty
Lua
openresty
realistic
16,384
2,870,076
451.25MB/s
β
2xx: 14,350,382
3xx: 0
4xx: 0
5xx: 0
7720.3%
3.9GiB
85.42ms
320.70ms
13
deno
TS
V8
realistic
16,384
2,283,431
305.02MB/s
β
2xx: 11,439,992
3xx: 0
4xx: 0
5xx: 0
6749.5%
4.3GiB
95.30ms
304.00ms
14
node
JS
V8
realistic
16,384
2,269,822
346.17MB/s
β
2xx: 11,349,110
3xx: 0
4xx: 0
5xx: 0
8321.1%
4.1GiB
77.11ms
346.90ms
15
genhttp
C#
Kestrel
realistic
16,384
1,870,938
214.01MB/s
β
2xx: 9,354,692
3xx: 0
4xx: 0
5xx: 0
9423.5%
964.7MiB
88.88ms
223.30ms
16
express
JS
express
realistic
16,384
579,085
89.96MB/s
β
2xx: 2,895,428
3xx: 0
4xx: 0
5xx: 0
9547.8%
11.5GiB
162.62ms
1.08s
17
bun
TS
JSC
realistic
16,384
541,960
53.65MB/s
β
2xx: 2,709,802
3xx: 0
4xx: 0
5xx: 0
8837.5%
2.5GiB
419.27ms
858.40ms
Filters + (expand)
Lang
(Toggle)
All
C
C#
C++
Go
Java
JS
Lua
Rust
TS
Type
(Toggle)
Realistic
Stripped
Filter
Results
Baseline (HTTP/2)
Static Files (HTTP/2)
Same workload as the HTTP/1.1 baseline β
GET /baseline2 with query parameter parsing β but over encrypted HTTP/2 connections using TLS + ALPN. Benchmarked with h2load instead of gcannon. Measures how efficiently a framework handles HTTP/2 multiplexing and TLS overhead.Conn
Best
256
1024
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
h2o
C
h2o
realistic
256
14,086,820
349.29MB/s
β
2xx: 70,434,100
3xx: 0
4xx: 0
5xx: 0
2712.9%
140.0MiB
1.06ms
1.06ms
π₯
drogon
C++
drogon
realistic
256
13,359,760
1.85GB/s
β
2xx: 66,798,800
3xx: 0
4xx: 0
5xx: 0
4668.7%
173.0MiB
1.85ms
1.85ms
π₯
hyper
Rust
hyper
realistic
256
8,150,472
209.88MB/s
β
2xx: 40,752,361
3xx: 0
4xx: 0
5xx: 0
7712.2%
174.7MiB
3.14ms
3.14ms
4
quarkus-jvm
Java
Netty
realistic
256
6,264,400
167.28MB/s
β
2xx: 31,322,000
3xx: 0
4xx: 0
5xx: 0
9466.6%
10.4GiB
3.81ms
3.81ms
5
h2o-mruby
C
h2o
realistic
256
5,664,180
145.86MB/s
β
2xx: 28,320,900
3xx: 0
4xx: 0
5xx: 0
9518.7%
329.6MiB
4.83ms
4.83ms
6
nginx
C
nginx
realistic
256
3,273,185
268.46MB/s
β
2xx: 16,365,925
3xx: 0
4xx: 0
5xx: 0
6877.3%
3.5GiB
6.87ms
6.87ms
7
ntex
Rust
ntex-tokio
realistic
256
3,168,380
108.79MB/s
β
2xx: 15,841,900
3xx: 0
4xx: 0
5xx: 0
2332.9%
259.7MiB
4.08ms
4.08ms
8
actix
Rust
actix
realistic
256
3,049,940
104.72MB/s
β
2xx: 15,249,700
3xx: 0
4xx: 0
5xx: 0
11454.8%
216.1MiB
8.38ms
8.38ms
9
nginx-openresty
Lua
openresty
realistic
256
2,287,325
135.25MB/s
β
2xx: 11,436,627
3xx: 0
4xx: 0
5xx: 0
7365.9%
3.9GiB
11.52ms
11.52ms
10
node
JS
V8
realistic
256
1,434,200
43.82MB/s
β
2xx: 7,181,100
3xx: 0
4xx: 0
5xx: 0
11657.3%
12.8GiB
17.59ms
17.59ms
11
salvo
Rust
Salvo
realistic
256
1,427,205
38.12MB/s
β
2xx: 7,136,211
3xx: 0
4xx: 0
5xx: 0
8206.4%
344.9MiB
18.00ms
18.00ms
12
caddy
Go
caddy
realistic
256
582,645
13.91MB/s
β
2xx: 2,917,543
3xx: 0
4xx: 0
5xx: 0
7869.3%
1.1GiB
43.78ms
43.78ms
13
spring-jvm-jetty
Java
Jetty
realistic
256
450,288
12.04MB/s
β
2xx: 2,251,442
3xx: 0
4xx: 0
5xx: 0
6982.5%
7.7GiB
47.43ms
47.43ms
14
bun
TS
JSC
realistic
256
378,032
36.77MB/s
β
2xx: 3,760,087
3xx: 0
4xx: 0
5xx: 0
7563.6%
2.2GiB
72.87ms
72.87ms
15
spring-jvm
Java
Tomcat
realistic
256
270,357
16.25MB/s
β
2xx: 1,351,792
3xx: 0
4xx: 0
5xx: 0
4319.9%
15.5GiB
92.78ms
92.78ms
16
aspnet-minimal
C#
Kestrel
realistic
256
255,550
6.84MB/s
β
2xx: 1,277,752
3xx: 0
4xx: 0
5xx: 0
10219.0%
668.0MiB
96.27ms
96.27ms
17
genhttp
C#
Kestrel
realistic
256
229,581
6.14MB/s
β
2xx: 1,147,906
3xx: 0
4xx: 0
5xx: 0
11675.0%
946.5MiB
107.33ms
107.33ms
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
h2o
C
h2o
realistic
1,024
14,259,800
353.59MB/s
β
2xx: 71,299,000
3xx: 0
4xx: 0
5xx: 0
2536.1%
197.9MiB
3.74ms
3.74ms
π₯
drogon
C++
drogon
realistic
1,024
13,042,540
1.81GB/s
β
2xx: 65,212,700
3xx: 0
4xx: 0
5xx: 0
5612.5%
360.0MiB
7.75ms
7.75ms
π₯
hyper
Rust
hyper
realistic
1,024
7,211,077
185.72MB/s
β
2xx: 36,055,386
3xx: 0
4xx: 0
5xx: 0
8157.6%
494.3MiB
12.88ms
12.88ms
4
quarkus-jvm
Java
Netty
realistic
1,024
5,856,060
156.39MB/s
β
2xx: 29,280,300
3xx: 0
4xx: 0
5xx: 0
9256.9%
10.5GiB
16.36ms
16.36ms
5
h2o-mruby
C
h2o
realistic
1,024
5,712,100
147.12MB/s
β
2xx: 28,560,500
3xx: 0
4xx: 0
5xx: 0
9740.2%
329.2MiB
17.32ms
17.32ms
6
nginx
C
nginx
realistic
1,024
3,336,622
273.67MB/s
β
2xx: 16,683,113
3xx: 0
4xx: 0
5xx: 0
6876.1%
3.6GiB
22.24ms
22.24ms
7
ntex
Rust
ntex-tokio
realistic
1,024
3,238,480
111.22MB/s
β
2xx: 16,192,400
3xx: 0
4xx: 0
5xx: 0
2611.3%
309.9MiB
15.08ms
15.08ms
8
actix
Rust
actix
realistic
1,024
2,910,360
99.96MB/s
β
2xx: 14,551,800
3xx: 0
4xx: 0
5xx: 0
11220.3%
578.3MiB
33.34ms
33.34ms
9
nginx-openresty
Lua
openresty
realistic
1,024
2,360,058
139.55MB/s
β
2xx: 11,800,290
3xx: 0
4xx: 0
5xx: 0
7529.9%
4.0GiB
37.71ms
37.71ms
10
node
JS
V8
realistic
1,024
1,094,680
33.71MB/s
β
2xx: 5,534,800
3xx: 0
4xx: 0
5xx: 0
11590.7%
13.9GiB
85.36ms
85.36ms
11
salvo
Rust
Salvo
realistic
1,024
815,329
21.82MB/s
β
2xx: 4,076,962
3xx: 0
4xx: 0
5xx: 0
8459.0%
934.1MiB
117.79ms
117.79ms
12
bun
TS
JSC
realistic
1,024
558,342
54.31MB/s
β
2xx: 5,553,680
3xx: 0
4xx: 0
5xx: 0
7355.5%
2.1GiB
175.66ms
175.66ms
13
caddy
Go
caddy
realistic
1,024
482,758
11.57MB/s
β
2xx: 2,422,746
3xx: 0
4xx: 0
5xx: 0
6565.1%
2.8GiB
161.80ms
161.80ms
14
spring-jvm
Java
Tomcat
realistic
1,024
242,074
14.56MB/s
β
2xx: 1,210,381
3xx: 0
4xx: 0
5xx: 0
5113.8%
30.7GiB
348.60ms
348.60ms
15
aspnet-minimal
C#
Kestrel
realistic
1,024
202,920
5.47MB/s
β
2xx: 1,014,603
3xx: 0
4xx: 0
5xx: 0
11115.4%
2.3GiB
381.99ms
381.99ms
16
genhttp
C#
Kestrel
realistic
1,024
194,813
5.25MB/s
β
2xx: 974,069
3xx: 0
4xx: 0
5xx: 0
10834.3%
2.1GiB
364.00ms
364.00ms
17
spring-jvm-jetty
Java
Jetty
realistic
1,024
0
0
β
0%
0MiB
Results
Baseline (HTTP/2)
Static Files (HTTP/2)
Serves 20 static files of various types and sizes (CSS, JS, HTML, fonts, SVG, WebP, JSON β totaling ~325 KB) over HTTP/2 with TLS. The load generator (
h2load) requests all files using multiplexed streams, simulating a realistic browser page load. Measures static file serving throughput with HTTP/2 multiplexing.Conn
Best
256
1024
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
h2o
C
h2o
realistic
256
1,894,120
28.75GB/s
β
2xx: 9,484,237
3xx: 0
4xx: 0
5xx: 0
6782.6%
308.5MiB
13.74ms
13.74ms
π₯
drogon
C++
drogon
realistic
256
1,548,618
23.71GB/s
β
2xx: 7,743,259
3xx: 0
4xx: 0
5xx: 0
7273.3%
1.3GiB
19.44ms
19.44ms
π₯
hyper
Rust
hyper
realistic
256
1,535,088
23.30GB/s
β
2xx: 7,677,340
3xx: 0
4xx: 0
5xx: 0
6693.7%
226.8MiB
15.96ms
15.96ms
4
nginx
C
nginx
realistic
256
1,437,275
21.91GB/s
β
2xx: 7,186,431
3xx: 0
4xx: 0
5xx: 0
6719.9%
3.6GiB
18.83ms
18.83ms
5
actix
Rust
actix
realistic
256
1,191,015
18.09GB/s
β
2xx: 5,959,479
3xx: 0
4xx: 0
5xx: 0
7865.9%
634.9MiB
20.93ms
20.93ms
6
h2o-mruby
C
h2o
realistic
256
1,038,487
15.74GB/s
β
2xx: 5,214,163
3xx: 0
4xx: 0
5xx: 0
8374.5%
367.5MiB
25.29ms
25.29ms
7
salvo
Rust
Salvo
realistic
256
875,916
13.29GB/s
β
2xx: 4,382,564
3xx: 0
4xx: 0
5xx: 0
6974.1%
778.3MiB
27.69ms
27.69ms
8
node
JS
V8
realistic
256
637,420
9.71GB/s
β
2xx: 3,198,800
3xx: 0
4xx: 0
5xx: 0
10559.3%
11.6GiB
39.93ms
39.93ms
9
bun
TS
JSC
realistic
256
619,832
9.45GB/s
β
2xx: 6,155,090
3xx: 0
4xx: 0
5xx: 0
5824.9%
2.3GiB
43.00ms
43.00ms
10
nginx-openresty
Lua
openresty
realistic
256
562,749
8.57GB/s
β
2xx: 2,813,785
3xx: 0
4xx: 0
5xx: 0
7464.7%
3.7GiB
52.06ms
52.06ms
11
quarkus-jvm
Java
Netty
realistic
256
471,295
7.20GB/s
β
2xx: 2,362,489
3xx: 0
4xx: 0
5xx: 0
9109.4%
10.9GiB
53.14ms
53.14ms
12
caddy
Go
caddy
realistic
256
394,197
5.99GB/s
β
2xx: 1,981,582
3xx: 0
4xx: 0
5xx: 0
7688.1%
1.5GiB
64.43ms
64.43ms
13
spring-jvm-jetty
Java
Jetty
realistic
256
260,933
3.96GB/s
β
2xx: 1,304,697
3xx: 0
4xx: 0
5xx: 0
5171.3%
5.0GiB
62.14ms
62.14ms
14
spring-jvm
Java
Tomcat
realistic
256
212,858
3.24GB/s
β
2xx: 1,064,365
3xx: 0
4xx: 0
5xx: 0
5415.0%
14.5GiB
118.03ms
118.03ms
15
ntex
Rust
ntex-tokio
realistic
256
125,004
1.90GB/s
β
2xx: 625,034
3xx: 0
4xx: 0
5xx: 0
11258.8%
1.2GiB
197.67ms
197.67ms
16
genhttp
C#
Kestrel
realistic
256
47,304
764.03MB/s
β
2xx: 246,499
3xx: 0
4xx: 0
5xx: 0
10952.3%
2.8GiB
484.48ms
484.48ms
17
aspnet-minimal
C#
Kestrel
realistic
256
45,666
735.85MB/s
β
2xx: 237,387
3xx: 0
4xx: 0
5xx: 0
11120.1%
1.3GiB
504.32ms
504.32ms
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
nginx
C
nginx
realistic
1,024
1,789,616
27.28GB/s
β
2xx: 8,948,174
3xx: 0
4xx: 0
5xx: 0
6057.1%
4.3GiB
41.55ms
41.55ms
π₯
hyper
Rust
hyper
realistic
1,024
1,656,507
25.14GB/s
β
2xx: 8,288,023
3xx: 0
4xx: 0
5xx: 0
6342.0%
839.1MiB
45.66ms
45.66ms
π₯
h2o
C
h2o
realistic
1,024
1,492,730
22.64GB/s
β
2xx: 7,498,837
3xx: 0
4xx: 0
5xx: 0
7089.1%
919.7MiB
50.97ms
50.97ms
4
h2o-mruby
C
h2o
realistic
1,024
1,409,680
21.32GB/s
β
2xx: 7,119,182
3xx: 0
4xx: 0
5xx: 0
7544.2%
1013.0MiB
63.28ms
63.28ms
5
drogon
C++
drogon
realistic
1,024
1,106,952
16.94GB/s
β
2xx: 5,535,030
3xx: 0
4xx: 0
5xx: 0
7659.1%
3.1GiB
88.74ms
88.74ms
6
actix
Rust
actix
realistic
1,024
946,470
14.38GB/s
β
2xx: 4,739,366
3xx: 0
4xx: 0
5xx: 0
8501.4%
1.8GiB
97.58ms
97.58ms
7
bun
TS
JSC
realistic
1,024
746,381
11.37GB/s
β
2xx: 7,421,716
3xx: 0
4xx: 0
5xx: 0
5478.7%
3.1GiB
133.08ms
133.08ms
8
salvo
Rust
Salvo
realistic
1,024
589,230
8.93GB/s
β
2xx: 2,959,621
3xx: 0
4xx: 0
5xx: 0
6379.7%
1.8GiB
164.24ms
164.24ms
9
nginx-openresty
Lua
openresty
realistic
1,024
567,449
8.64GB/s
β
2xx: 2,837,294
3xx: 0
4xx: 0
5xx: 0
7649.8%
3.8GiB
167.81ms
167.81ms
10
node
JS
V8
realistic
1,024
531,200
8.27GB/s
β
2xx: 2,722,800
3xx: 0
4xx: 0
5xx: 0
10819.6%
13.8GiB
172.74ms
172.74ms
11
quarkus-jvm
Java
Netty
realistic
1,024
444,575
6.79GB/s
β
2xx: 2,231,363
3xx: 0
4xx: 0
5xx: 0
8998.9%
11.4GiB
215.48ms
215.48ms
12
caddy
Go
caddy
realistic
1,024
357,343
5.43GB/s
β
2xx: 1,802,666
3xx: 0
4xx: 0
5xx: 0
6223.6%
3.5GiB
257.50ms
257.50ms
13
spring-jvm
Java
Tomcat
realistic
1,024
167,832
2.55GB/s
β
2xx: 839,189
3xx: 0
4xx: 0
5xx: 0
5743.0%
30.6GiB
509.66ms
509.66ms
14
ntex
Rust
ntex-tokio
realistic
1,024
124,183
1.88GB/s
β
2xx: 620,929
3xx: 0
4xx: 0
5xx: 0
11216.4%
2.3GiB
726.67ms
726.67ms
15
aspnet-minimal
C#
Kestrel
realistic
1,024
35,763
658.70MB/s
β
2xx: 216,353
3xx: 0
4xx: 0
5xx: 0
12032.7%
3.4GiB
996.76ms
996.76ms
16
genhttp
C#
Kestrel
realistic
1,024
32,826
589.31MB/s
β
2xx: 193,702
3xx: 0
4xx: 0
5xx: 0
10862.8%
7.9GiB
1.01s
1.01s
17
spring-jvm-jetty
Java
Jetty
realistic
1,024
0
0
β
0%
0MiB
⚠️Experimental: HTTP/3 benchmarks use oha as the load generator, which has known limitations with QUIC β including performance issues in headless mode and inability to fully saturate high-performance servers. These results are useful for relative comparison between frameworks but may not reflect true peak throughput. We'll update these benchmarks as better HTTP/3 load generators become available.
Filters + (expand)
Lang
(Toggle)
All
C
C#
Go
Rust
Type
(Toggle)
Realistic
Stripped
Filter
Results
Baseline (HTTP/3)
Static Files (HTTP/3)
Same workload as the HTTP/1.1 baseline β
GET /baseline2 with query parameter parsing β but over HTTP/3 (QUIC) with TLS 1.3. Benchmarked with oha using 128 parallel streams per connection. Measures how efficiently a framework handles HTTP/3 over UDP-based QUIC transport.Conn
Best
256
512
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
nginx
C
nginx
realistic
256
543,491
0.52MB/s
β
2xx: 2,719,077
3xx: 0
4xx: 0
5xx: 0
1473.3%
3.8GiB
9.85ms
31.37ms
π₯
h2o-mruby
C
h2o
realistic
256
529,797
0.50MB/s
β
2xx: 2,650,193
3xx: 0
4xx: 0
5xx: 0
1815.9%
325.9MiB
10.34ms
32.54ms
π₯
salvo
Rust
Salvo
realistic
256
382,994
0.36MB/s
β
2xx: 2,093,406
3xx: 0
4xx: 0
5xx: 0
4059.8%
94.6MiB
10.82ms
145.17ms
4
genhttp
C#
Kestrel
realistic
256
294,066
0.28MB/s
β
2xx: 1,482,146
3xx: 0
4xx: 0
5xx: 0
8418.1%
2.1GiB
26.10ms
113.86ms
5
aspnet-minimal
C#
Kestrel
realistic
256
289,141
0.27MB/s
β
2xx: 1,445,651
3xx: 0
4xx: 0
5xx: 0
8295.7%
2.6GiB
26.98ms
142.21ms
6
caddy
Go
caddy
realistic
256
197,030
0.19MB/s
β
2xx: 986,066
3xx: 0
4xx: 0
5xx: 0
1958.7%
910.5MiB
40.95ms
155.69ms
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
h2o-mruby
C
h2o
realistic
512
500,199
0.47MB/s
β
2xx: 2,501,160
3xx: 0
4xx: 0
5xx: 0
1939.4%
365.0MiB
18.27ms
52.77ms
π₯
nginx
C
nginx
realistic
512
493,454
0.47MB/s
β
2xx: 2,470,589
3xx: 0
4xx: 0
5xx: 0
1485.3%
3.9GiB
17.41ms
54.93ms
π₯
aspnet-minimal
C#
Kestrel
realistic
512
266,499
0.25MB/s
β
2xx: 1,336,881
3xx: 0
4xx: 0
5xx: 0
8161.8%
3.4GiB
55.12ms
228.70ms
4
genhttp
C#
Kestrel
realistic
512
240,342
0.23MB/s
β
2xx: 1,205,873
3xx: 0
4xx: 0
5xx: 0
8275.6%
4.1GiB
62.51ms
214.83ms
5
salvo
Rust
Salvo
realistic
512
221,142
0.21MB/s
β
2xx: 2,016,594
3xx: 0
4xx: 0
5xx: 0
2936.7%
89.6MiB
8.20ms
113.18ms
6
caddy
Go
caddy
realistic
512
194,203
0.18MB/s
β
2xx: 970,966
3xx: 0
4xx: 0
5xx: 0
2378.2%
1.6GiB
83.01ms
313.27ms
7
h2o
C
h2o
realistic
512
0
0
β
0%
0MiB
β
β
Results
Baseline (HTTP/3)
Static Files (HTTP/3)
Serves 20 static files of various types and sizes (CSS, JS, HTML, fonts, SVG, WebP, JSON β totaling ~325 KB) over HTTP/3 (QUIC) with TLS 1.3. The load generator (
oha) requests all files using 128 parallel streams per connection, simulating a realistic browser page load over QUIC.Conn
Best
256
512
Click a row to expand details
#
Framework
Lang
Engine
Type
Conn
Req/s
BW
Err
CPU
Mem
Avg Lat
P99
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
h2o-mruby
C
h2o
realistic
256
441,311
6815.26MB/s
β
2xx: 2,206,941
3xx: 0
4xx: 0
5xx: 0
2931.4%
467.4MiB
14.38ms
47.34ms
π₯
nginx
C
nginx
realistic
256
194,546
2990.46MB/s
β
2xx: 978,869
3xx: 0
4xx: 0
5xx: 0
9315.8%
4.1GiB
41.52ms
151.21ms
π₯
aspnet-minimal
C#
Kestrel
realistic
256
66,478
1008.74MB/s
β
2xx: 332,193
3xx: 0
4xx: 0
5xx: 0
7531.5%
2.4GiB
116.96ms
648.77ms
4
caddy
Go
caddy
realistic
256
21,287
304.78MB/s
β
2xx: 105,706
3xx: 0
4xx: 0
5xx: 0
11864.7%
4.3GiB
393.87ms
1970.08ms
5
genhttp
C#
Kestrel
realistic
256
10,641
130.33MB/s
β
2xx: 49,017
3xx: 0
4xx: 0
5xx: 0
7214.6%
2.0GiB
600.63ms
4816.42ms
#
Framework
Lang
Engine
Type
Conn
Req/s
Err
CPU
Mem
Avg Lat
P99
π₯
h2o-mruby
C
h2o
realistic
512
415,564
6398.91MB/s
β
2xx: 2,079,144
3xx: 0
4xx: 0
5xx: 0
3508.9%
642.5MiB
31.89ms
89.76ms
π₯
nginx
C
nginx
realistic
512
199,867
3040.61MB/s
β
2xx: 1,001,300
3xx: 0
4xx: 0
5xx: 0
9681.2%
4.3GiB
80.71ms
258.79ms
π₯
aspnet-minimal
C#
Kestrel
realistic
512
60,044
882.05MB/s
β
2xx: 299,144
3xx: 0
4xx: 0
5xx: 0
7735.3%
3.0GiB
257.14ms
1336.94ms
4
caddy
Go
caddy
realistic
512
15,752
203.66MB/s
β
2xx: 78,797
3xx: 0
4xx: 0
5xx: 0
12491.7%
5.9GiB
1130.83ms
5126.51ms
5
genhttp
C#
Kestrel
realistic
512
10,911
113.36MB/s
β
2xx: 45,471
3xx: 0
4xx: 0
5xx: 0
8067.9%
2.6GiB
1353.38ms
5356.30ms
6
h2o
C
h2o
realistic
512
0
0
β
0%
0MiB
β
β
⚠️Note: Stripped frameworks are excluded from the composite ranking and normalization. Only realistic frameworks β those using standard, production-grade HTTP libraries β are scored here. Stripped entries can still be compared in individual test profiles.
Composite Score
Overall ranking using the average of normalized scores across scored test profiles. Each profile is normalized so the top framework scores 100. Frameworks missing a profile receive 0 for that profile, lowering their composite score proportionally.
Optionally factor in CPU and memory efficiency β measured as throughput per unit of resource (req/s per CPU%, req/s per MB).
Columns marked with (*) are shown for reference only and do not count toward the composite score.
Learn more →
Tests
(Toggle)
All
Baseline (HTTP/1.1)
Pipelined (HTTP/1.1)
Short-lived (HTTP/1.1)
JSON (HTTP/1.1)
Upload (HTTP/1.1)
Compression (HTTP/1.1)
Noisy (HTTP/1.1)
Mixed (HTTP/1.1)
Baseline (HTTP/2)
Static (HTTP/2)
Baseline (HTTP/3)
Static (HTTP/3)
Resource factors
CPU efficiency (1x weight)
Memory efficiency (0.5x weight)