HttpArena
Frameworks

uWebZockets

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

Zero-allocation, shared-nothing Zig 0.16 framework: a typed Request/Response API over HTTP/1.1, HTTP/2, HTTP/3, WebSocket and JSON-RPC, served from bounded startup slabs. Each cluster worker runs its own libxev loop; the kernel schedules workers across the benchmark's assigned logical CPUs. BoringSSL, lsquic and libdeflate are compiled in. Standard configuration, no tuning.

Achievements

🥇 3 Gold · 🥈 3 Silver. 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
🥇 GoldTest profileConnection · Baseline1 of 7
🥇 GoldTest profileConnection · Short-lived1 of 7
🥇 GoldTest profileWebSocket · Echo1 of 7
🥈 SilverTest profileEfficiency · Latency-1M2 of 5
🥈 SilverTest profileHTTP/2 · JSON (h2c)2 of 4
🥈 SilverTest profileWebSocket · Echo Short-lived2 of 7

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.14 of 74030
HTTP/24 of 4492
HTTP/33 of 30
WebSocket5 of 72085

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0963,736,1921.10ms1.86ms6302.8%1.3GiB
ConnectionPipelined4,0965,043,18813.02ms18.20ms6145.6%1.3GiB
ConnectionShort-lived4,0962,613,4341.46ms10.60ms5900.5%1.3GiB
EfficiencyLatency-10K1,0249,97974.5us111.0us23.5%1.2GiB
EfficiencyLatency-1M1,024997,885101.4us179.0us2468.0%1.2GiB
EfficiencyLatency-500K/81,024474,534468066.4us2835456.0us817.3%908MiB
WorkloadJSON Comp4,09616,639180.80ms3.58s621.3%1.2GiB
WorkloadJSON Comp16,38416,486183.93ms3.73s629.3%1.2GiB
WorkloadJSON TLS4,09626,17218.70ms84.96ms100.5%1.2GiB
HTTP/2Baseline (h2c)2562,442,365956us38.79ms6181.6%1.2GiB
HTTP/2Baseline (h2c)1,0242,526,6354.11ms247.93ms6501.6%1.2GiB
HTTP/2Baseline (h2c)4,0962,483,81731.74ms884.28ms6220.8%1.5GiB
HTTP/2JSON (h2c)1,0241,401,0105.93ms153.89ms6579.4%1.3GiB
HTTP/2JSON (h2c)4,0961,339,09636.19ms1.82s6316.8%1.7GiB
HTTP/3Baseline641,7717.29ms54.81ms40.6%1.2GiB
WebSocketEcho5123,899,512130us295us6407.3%1.2GiB
WebSocketEcho4,0964,311,546949us1.49ms6121.7%1.3GiB
WebSocketEcho16,3843,998,6964.04ms5.90ms6424.7%1.7GiB
WebSocketEcho Pipelined5125,749,1651.42ms2.51ms6407.5%1.2GiB
WebSocketEcho Pipelined4,0965,927,86210.76ms14.00ms6187.8%1.3GiB
WebSocketEcho Pipelined16,3845,987,49727.00ms41.70ms6035.9%1.6GiB
WebSocketEcho Short-lived5122,085,409129us414us5171.5%1.2GiB
WebSocketEcho Short-lived4,0962,496,360969us1.73ms6014.4%1.3GiB

Compared with

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

EntryCompositevs uWebZockets
nilo7489+86%head to head
dusty6938+72%head to head
zix4794+19%head to head
libxev3864-4%head to head
zeemo3731-7%head to head

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

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