HttpArena
Frameworks

sark

Engine · Rust · engine: io_uring

sark — Rust HTTP on the dope io_uring runtime: thread-per-core, zero-copy parsing, type-safe routing, cartel-pg for Postgres. No serde, no tokio, no Arc/atomic.

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. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.12 of 34381
HTTP/22 of 6230
gRPC3 of 3294
WebSocket4 of 9191

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline5123,986,715127us280us6335.9%1.1GiB
ConnectionBaseline4,0964,199,582975us1.29ms6227.0%1.2GiB
ConnectionPipelined51240,074,710203us397us6723.3%1.1GiB
ConnectionPipelined4,09640,880,2711.60ms2.26ms6757.4%1.2GiB
ConnectionShort-lived5122,443,440195us695us5996.1%1.3GiB
ConnectionShort-lived4,0962,681,4841.40ms3.56ms6238.1%1.3GiB
WorkloadJSON4,0961,811,2021.68ms48.70ms6609.5%1.3GiB
WorkloadJSON Comp512605,170833us2.61ms6105.9%1.3GiB
WorkloadJSON Comp4,096659,6146.12ms161.40ms6508.4%1.3GiB
WorkloadJSON Comp16,384664,50023.30ms579.40ms6437.0%1.3GiB
WorkloadJSON TLS4,0961,826,1631.30ms48.07ms5916.6%1.3GiB
WorkloadUpload322,7282.25ms9.74ms1964.5%1.1GiB
WorkloadUpload2562,66628.19ms116.80ms5446.5%1.2GiB
WorkloadStatic1,0241,360,501703.64us14.79ms6454.6%2.4GiB
WorkloadStatic4,0961,294,5193.04ms14.38ms6415.6%2.5GiB
WorkloadStatic6,8001,216,8675.42ms49.48ms6294.9%2.6GiB
DatabaseAsync DB1,024346,2762.39ms26.20ms3522.6%1.4GiB
DatabaseCRUD4,096548,0266.64ms17.60ms1523.9%1.3GiB
DatabaseFortunes1,024246,5362.45ms5.79ms5910.7%1.2GiB
Multi-endpointAPI-425667,5582.05ms27.50ms349.4%182MiB
Multi-endpointAPI-161,024255,6981.91ms32.60ms1599.2%398MiB
HTTP/2Baseline25610,355,8731.84ms5.82ms5585.1%1.1GiB
HTTP/2Baseline1,02410,509,5034.95ms36.63ms5919.4%1.3GiB
HTTP/2Static256769,5186.94ms34.84ms6327.1%1.5GiB
HTTP/2Static1,024817,3078.39ms77.80ms5575.1%2.0GiB
HTTP/2Baseline (h2c)25611,825,2681.89ms8.79ms5936.0%1.1GiB
HTTP/2Baseline (h2c)1,02412,533,9007.17ms25.96ms6444.9%1.1GiB
HTTP/2Baseline (h2c)4,09612,340,65030.28ms107.94ms6308.1%1.3GiB
HTTP/2JSON (h2c)1,0243,243,2879.63ms76.18ms6556.1%1.3GiB
HTTP/2JSON (h2c)4,0961,975,37164.10ms432.37ms6514.2%1.9GiB
gRPCUnary256370,56341.79ms1.58s250.5%1.1GiB
gRPCUnary1,0241,473,46716.87ms75.94ms1093.3%1.2GiB
gRPCUnary TLS2565,738,2904.03ms27.49ms5897.6%1.1GiB
gRPCUnary TLS1,0245,794,81211.28ms63.38ms6295.2%1.3GiB
gRPCStream649,917,000125.47ms441.92ms91.2%1.1GiB
gRPCStream TLS649,547,000127.42ms428.95ms91.6%1.1GiB
GatewayGateway (H2)512107,499142.24ms2.23s4529.5%2.8GiB
GatewayGateway (H2)1,02473,267353.29ms4.65s4305.8%4.9GiB
GatewayGateway (H3)6493,65521.75ms82.76ms3197.3%907MiB
GatewayGateway (H3)25663,434125.55ms733.02ms2079.4%2.2GiB
WebSocketEcho5124,179,366121us258us6316.3%1.1GiB
WebSocketEcho4,0964,394,447931us1.29ms6257.3%1.2GiB
WebSocketEcho16,3844,079,5543.98ms4.74ms6377.9%1.6GiB
WebSocketEcho Pipelined51263,019,270129us276us6366.9%1.1GiB
WebSocketEcho Pipelined4,09664,629,0721.01ms1.32ms6254.4%1.2GiB
WebSocketEcho Pipelined16,38460,951,6284.26ms4.92ms6385.8%1.6GiB

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