HttpArena
Frameworks

anole

Experimental · Zig · engine: zio · standard configuration · completeness 4/4

Anole: HTTP/1.1, HTTP/2, HTTP/3, WebSocket, gRPC and WebTransport on the zio async runtime (io_uring where available, epoll fallback), BoringSSL. Documented APIs and default settings.

Achievements

🥇 1 Gold · 🥈 2 Silver · 🥉 1 Bronze. Top three of a field, taken in this entry's own league: the family composite, the same composite among entries written in the same language, and each test profile it is scored on. Every field is the one the badges publish, so a medal and a badge always say the same thing. How medals are awarded.

MedalAwardFieldRank
🥇 GoldWithin its languageZig · WebSocket1 of 3
🥈 SilverWithin its languageZig · HTTP/1.12 of 3
🥈 SilverWithin its languageZig · HTTP/22 of 3
🥉 BronzeTest profileWorkload · 8Gbit3 of 17

Composite rank

Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family, less 2.5% for each of routing, middleware, request and response the entry does not do for you - its completeness factor, which the WebSocket and gRPC families do not carry. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.19 of 195711
HTTP/27 of 101452
HTTP/36 of 739
Gateway2 of 21863
gRPC4 of 417
WebSocket6 of 142532

Every result

Alpha Round, 41 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0963,117,8621.32ms1.81ms6113.7%141MiB
ConnectionPipelined4,0964,165,06215.74ms22.70ms6212.5%148MiB
ConnectionShort-lived4,0962,447,1101.65ms3.88ms6208.6%192MiB
ConcurrencyAsync Delay32,0001,805,68117.59ms23.00ms5519.6%811MiB
EfficiencyLatency-10K1,0249,98273.2us107.0us26.3%57MiB
EfficiencyLatency-1M1,024997,766107.9us193.0us2712.0%63MiB
EfficiencyLatency-500K/81,024421,3331506697.7us4429824.0us793.9%39MiB
WorkloadJSON Comp4,09679,92551.07ms128.90ms1789.1%820MiB
WorkloadJSON Comp16,38480,247198.03ms293.10ms1755.6%1.7GiB
WorkloadJSON TLS4,0961,171,99247.24ms1.88s6023.8%562MiB
Workload8Gbit51249,36686.0us112.0us209.2%71MiB
WorkloadStatic TLS1,024420,8622.43ms25.33ms6578.5%322MiB
HTTP/2Baseline2567,784,3533.28ms19.03ms5954.2%1.9GiB
HTTP/2Baseline1,0247,060,69013.53ms89.26ms6189.0%1.2GiB
HTTP/2Static256324,70627.54ms793.86ms5674.3%852MiB
HTTP/2Static1,024224,542148.70ms2.48s4200.0%2.7GiB
HTTP/2Baseline (h2c)2568,364,2513.05ms22.90ms5958.5%1.8GiB
HTTP/2Baseline (h2c)1,0248,273,48111.85ms134.49ms6456.2%900MiB
HTTP/2Baseline (h2c)4,0966,902,41056.05ms926.11ms6450.3%2.0GiB
HTTP/2JSON (h2c)1,024739,85246.89ms693.99ms2016.0%1.0GiB
HTTP/2JSON (h2c)4,096660,24499.85ms4.99s1632.0%1.5GiB
HTTP/3Baseline6464,26151.69ms166.71ms359.9%186MiB
HTTP/3Static6427,261143.66ms715.82ms481.1%426MiB
gRPCUnary25676,064343.28ms4.99s290.9%280MiB
gRPCUnary1,02460,1621.37s4.99s321.4%1.2GiB
gRPCUnary TLS25651,742364.94ms4.58s377.0%604MiB
gRPCUnary TLS1,02446,2231.46s4.78s319.8%1.4GiB
GatewayGateway (H2)512177,92676.97ms4.93s3644.0%2.1GiB
GatewayGateway (H2)1,024176,195124.37ms4.87s3849.0%3.0GiB
GatewayGateway (H3)64167,56913.33ms43.26ms4036.8%1.3GiB
GatewayGateway (H3)256156,68349.67ms718.37ms4135.7%1.9GiB
GatewayProduction Stack256114,73524.23ms3.11s2920.4%1.3GiB
GatewayProduction Stack1,024106,38671.74ms4.33s2692.8%2.0GiB
WebSocketEcho5123,992,849127us293us6492.6%52MiB
WebSocketEcho4,0964,059,7411.01ms1.84ms6495.2%152MiB
WebSocketEcho16,3843,212,6214.72ms7.36ms6512.0%456MiB
WebSocketEcho Pipelined51255,731,900146us307us6479.2%53MiB
WebSocketEcho Pipelined4,09655,724,6271.18ms1.91ms6606.2%156MiB
WebSocketEcho Pipelined16,38445,590,3934.89ms7.29ms6609.4%484MiB
WebSocketEcho Short-lived5121,738,956210us708us5794.1%96MiB
WebSocketEcho Short-lived4,0962,181,8711.51ms3.57ms6222.8%204MiB

Compared with

The Zig entries around anole on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs anole
dusty7172+26%head to head
nilo6354+11%head to head
swerver6179+8%head to head
zix4789-16%head to head
libxev3863-32%head to head

Compare anole with any Zig entry · Compare anole with any entry, in any language · Every Zig entry, ranked

Results updated · How the benchmark is run · The machine · Add or fix an entry