HttpArena
Frameworks

genhttp-ioxide

Emerging · C# · engine: ioxide · tuned configuration · completeness 4/4

GenHTTP 11 on .NET 11 on a custom io_uring server engine (the ioxide runtime) instead of the default socket engine. Built from the GenHTTP 11 preview 24 packages, which carry the merged ioxide engine branch (PR #887): TLS is terminated in the engine itself, with HTTP/2 and HTTP/3: :8080 is HTTP/1.1, :8082 h2c, :8081 HTTP/1.1 over TLS, and :8443 serves HTTP/1.1 and HTTP/2 over TCP plus HTTP/3 over QUIC on the same port. Static is served by IoxideFiles, which reads bodies positionally off the io_uring ring through a per-reactor descriptor snapshot; responses go through GenHTTP's own routing + serialization; Postgres rides ioxide.pg (per-reactor ring-native pool).

Achievements

🥇 10 Gold · 🥈 1 Silver · 🥉 5 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
🥇 GoldFamily compositeComposite · HTTP/1.11 of 93
🥇 GoldFamily compositeComposite · WebSocket1 of 25
🥇 GoldWithin its languageC# · HTTP/1.11 of 11
🥇 GoldWithin its languageC# · HTTP/21 of 4
🥇 GoldWithin its languageC# · HTTP/31 of 4
🥇 GoldWithin its languageC# · WebSocket1 of 7
🥇 GoldTest profileConnection · Baseline1 of 93
🥇 GoldTest profileConnection · Short-lived1 of 93
🥇 GoldTest profileHTTP/2 · Baseline1 of 27
🥇 GoldTest profileHTTP/2 · Baseline (h2c)1 of 20
🥈 SilverFamily compositeComposite · HTTP/22 of 28
🥉 BronzeFamily compositeComposite · HTTP/33 of 11
🥉 BronzeTest profileHTTP/2 · JSON (h2c)3 of 20
🥉 BronzeTest profileHTTP/3 · Baseline3 of 11
🥉 BronzeTest profileWebSocket · Echo Pipelined3 of 21
🥉 BronzeTest profileWebSocket · Echo Short-lived3 of 11

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.11 of 937074
HTTP/22 of 283313
HTTP/33 of 111378
WebSocket1 of 252627

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0963,169,3201.29ms4.48ms5726.6%1.5GiB
ConnectionPipelined4,09621,292,1763.08ms8.65ms6017.2%1.4GiB
ConnectionShort-lived4,0962,575,1091.51ms5.27ms5878.6%1.6GiB
ConcurrencyAsync Delay32,0001,899,66316.71ms27.50ms5963.7%2.4GiB
EfficiencyLatency-10K1,0249,97981.3us104.0us24.5%1.3GiB
EfficiencyLatency-1M1,024998,148140.0us1368.0us2524.3%1.3GiB
EfficiencyLatency-500K/81,024449,733924397.1us3507200.0us748.5%350MiB
WorkloadJSON Comp4,096570,6197.16ms24.00ms6233.6%1.8GiB
WorkloadJSON Comp16,384561,15328.96ms59.90ms5964.0%2.1GiB
WorkloadJSON TLS4,096971,0774.37ms88.55ms5966.2%2.1GiB
Workload8Gbit51249,376128.3us1066.0us268.8%3.5GiB
WorkloadStatic TLS1,024691,5311.57ms41.58ms6030.9%1.6GiB
DatabaseAsync DB1,024282,5583.04ms10.70ms3507.2%1.6GiB
HTTP/2Baseline2567,903,2803.03ms17.16ms5277.4%1.6GiB
HTTP/2Baseline1,0247,450,89112.88ms82.41ms5247.2%1.7GiB
HTTP/2Static256510,30917.99ms98.59ms6119.8%1.7GiB
HTTP/2Static1,024475,10165.57ms179.27ms6284.8%3.2GiB
HTTP/2Baseline (h2c)2567,963,8043.08ms20.71ms5031.1%1.4GiB
HTTP/2Baseline (h2c)1,0248,172,71211.88ms53.77ms5459.9%1.6GiB
HTTP/2Baseline (h2c)4,0968,895,78446.32ms249.17ms5551.4%1.9GiB
HTTP/2JSON (h2c)1,0241,772,21518.24ms98.02ms6053.8%1.7GiB
HTTP/2JSON (h2c)4,0961,731,55874.57ms272.25ms5801.1%2.5GiB
HTTP/3Baseline641,877,9902.40ms6.46ms4177.0%444MiB
HTTP/3Static64240,80919.85ms45.62ms3981.8%1.0GiB
WebSocketEcho5123,475,722146us359us5962.9%1.3GiB
WebSocketEcho4,0963,577,6551.14ms4.22ms6007.7%1.5GiB
WebSocketEcho16,3843,108,2135.24ms15.20ms5669.6%2.1GiB
WebSocketEcho Pipelined51239,418,003207us1.58ms5759.5%1.3GiB
WebSocketEcho Pipelined4,09639,567,4781.66ms7.33ms6048.1%1.5GiB
WebSocketEcho Pipelined16,38433,127,2647.85ms20.80ms5729.1%2.0GiB
WebSocketEcho Short-lived5121,992,526155us519us5376.8%1.4GiB
WebSocketEcho Short-lived4,0962,373,6031.21ms6.06ms5742.1%1.6GiB

Compared with

The C# entries around genhttp-ioxide on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs genhttp-ioxide
edixoi6810-4%head to head
ioxide-pipes6448-9%head to head

Compare genhttp-ioxide with any C# entry · Compare genhttp-ioxide with any entry, in any language · Every C# entry, ranked

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