HttpArena
Frameworks

libuvcpp

Emerging · C++ · engine: libuv · standard configuration · completeness 4/4

libuvcpp on the libuv event loop, one loop per available core. Routing, path and query params, static files and WebSocket through uvcpp_web_app, JSON written per request by the framework's own uvcpp_json_writer (values read out of the uvcpp_json DOM, no pre-rendered bytes), gzip through the built-in response compression, async Postgres through uvcpp_db_pool, and gRPC unary calls through the uvcpp_grpc module. One process serves HTTP/1.1 and prior-knowledge h2c on 8080, h2c on 8082, HTTP/2 over TLS on 8443, and HTTP/3 on 8443/udp, all from the same build; the gateway stacks put a stock Caddy edge in front of it.

Achievements

🥇 1 Gold · 🥈 5 Silver · 🥉 4 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 languageC++ · HTTP/1.11 of 4
🥈 SilverFamily compositeComposite · gRPC2 of 6
🥈 SilverTest profileEfficiency · Latency-10K2 of 76
🥈 SilverTest profileGateway · Gateway (H3)2 of 6
🥈 SilverTest profilegRPC · Unary2 of 6
🥈 SilverTest profilegRPC · Unary TLS2 of 6
🥉 BronzeFamily compositeComposite · HTTP/23 of 23
🥉 BronzeTest profileHTTP/2 · Baseline3 of 23
🥉 BronzeTest profileHTTP/2 · Baseline (h2c)3 of 18
🥉 BronzeTest profileHTTP/3 · Baseline3 of 13

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.111 of 765037
HTTP/23 of 232120
HTTP/35 of 13734
Gateway4 of 71454
gRPC2 of 61746
WebSocket4 of 232023

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0961,639,1892.50ms3.27ms6419.0%139MiB
ConnectionPipelined4,0966,784,3759.68ms12.30ms6360.9%148MiB
ConnectionShort-lived4,0961,309,8913.09ms49.20ms6642.4%101MiB
ConcurrencyAsync Delay32,0001,513,51220.61ms23.10ms6394.1%490MiB
EfficiencyLatency-10K1,0249,98378.9us121.0us38.5%77MiB
EfficiencyLatency-1M1,024997,940168.6us462.0us4538.1%81MiB
EfficiencyLatency-500K/81,024245,0215008517.3us10899456.0us775.7%32MiB
WorkloadJSON Comp4,096325,47612.32ms283.50ms6476.7%120MiB
WorkloadJSON Comp16,384321,15230.31ms648.00ms6091.7%162MiB
WorkloadJSON TLS4,096672,4366.03ms60.84ms6373.5%396MiB
Workload8Gbit51249,175103.6us152.0us319.8%128MiB
WorkloadStatic TLS1,024190,0965.36ms22.78ms3118.3%278MiB
DatabaseAsync DB1,02483,89011.77ms41.70ms3415.7%192MiB
HTTP/2Baseline2564,498,8276.10ms37.07ms6152.2%111MiB
HTTP/2Baseline1,0244,688,93220.62ms118.80ms6265.0%178MiB
HTTP/2Static256238,80735.15ms171.99ms2420.0%189MiB
HTTP/2Static1,024242,380131.42ms473.88ms2463.2%793MiB
HTTP/2Baseline (h2c)2564,850,8745.80ms52.59ms6055.3%82MiB
HTTP/2Baseline (h2c)1,0244,668,85321.21ms566.60ms6423.9%164MiB
HTTP/2Baseline (h2c)4,0964,702,57381.85ms682.36ms6417.1%811MiB
HTTP/2JSON (h2c)1,0241,496,31221.42ms509.96ms6387.4%298MiB
HTTP/2JSON (h2c)4,0961,486,56685.21ms538.31ms6273.2%983MiB
HTTP/3Baseline641,167,0344.46ms9.15ms4113.4%238MiB
HTTP/3Static64114,20632.76ms146.38ms3085.9%472MiB
gRPCUnary2563,391,5727.84ms118.92ms6123.1%145MiB
gRPCUnary1,0243,263,60630.29ms193.63ms6435.7%412MiB
gRPCUnary TLS2563,286,1458.02ms77.81ms6041.9%165MiB
gRPCUnary TLS1,0243,092,50631.49ms154.43ms6191.1%598MiB
GatewayGateway (H2)51275,887200.90ms2.15s4048.1%2.5GiB
GatewayGateway (H2)1,02468,655420.44ms4.61s3722.8%4.8GiB
GatewayGateway (H3)6484,16724.18ms85.33ms3685.2%390MiB
GatewayGateway (H3)25662,547126.95ms783.31ms2859.1%1.5GiB
GatewayProduction Stack25653,68578.49ms436.48ms3165.2%962MiB
GatewayProduction Stack1,02446,274346.24ms2.19s3301.1%2.8GiB
WebSocketEcho5122,751,709185us458us6592.8%79MiB
WebSocketEcho4,0962,844,3001.44ms1.93ms6375.3%130MiB
WebSocketEcho16,3842,516,9426.08ms7.46ms6118.9%338MiB
WebSocketEcho Pipelined51230,027,149272us645us6641.8%79MiB
WebSocketEcho Pipelined4,09628,938,7212.26ms2.86ms6776.1%138MiB
WebSocketEcho Pipelined16,38425,179,4659.83ms12.20ms6643.7%357MiB
WebSocketEcho Short-lived5121,550,796211us620us5899.1%90MiB
WebSocketEcho Short-lived4,0961,777,709375us792us6250.1%97MiB

Compared with

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

EntryCompositevs libuvcpp
hical6236+24%head to head
agensio4949-2%head to head
drogon4350-14%head to head

Compare libuvcpp with any C++ entry · Compare libuvcpp with any entry, in any language · Every C++ entry, ranked

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