HttpArena
Frameworks

genhttp-ioxide

Emerging · C# · engine: ioxide · standard 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

🥇 8 Gold · 🥈 4 Silver · 🥉 6 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 · WebSocket1 of 23
🥇 GoldWithin its languageC# · HTTP/1.11 of 10
🥇 GoldWithin its languageC# · HTTP/21 of 5
🥇 GoldWithin its languageC# · HTTP/31 of 5
🥇 GoldWithin its languageC# · WebSocket1 of 6
🥇 GoldTest profileConnection · Short-lived1 of 76
🥇 GoldTest profileHTTP/2 · Baseline1 of 23
🥇 GoldTest profileHTTP/2 · Baseline (h2c)1 of 18
🥈 SilverFamily compositeComposite · HTTP/22 of 23
🥈 SilverFamily compositeComposite · HTTP/32 of 13
🥈 SilverTest profileHTTP/3 · Baseline2 of 13
🥈 SilverTest profileWebSocket · Echo Pipelined2 of 20
🥉 BronzeFamily compositeComposite · HTTP/1.13 of 76
🥉 BronzeTest profileConnection · Baseline3 of 76
🥉 BronzeTest profileHTTP/2 · JSON (h2c)3 of 18
🥉 BronzeTest profileHTTP/2 · Static3 of 21
🥉 BronzeTest profileHTTP/3 · Static3 of 13
🥉 BronzeTest profileWebSocket · Echo Short-lived3 of 14

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.13 of 766850
HTTP/22 of 233286
HTTP/32 of 131307
WebSocket1 of 232633

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,163,8611.29ms4.51ms5936.0%1.5GiB
ConnectionPipelined4,09621,552,5443.04ms8.33ms5980.2%1.4GiB
ConnectionShort-lived4,0962,588,0131.51ms5.40ms5859.5%1.7GiB
ConcurrencyAsync Delay32,0001,929,82516.45ms27.80ms5939.9%2.4GiB
EfficiencyLatency-10K1,0249,98177.1us106.0us23.6%1.3GiB
EfficiencyLatency-1M1,024997,632132.9us1358.0us2525.8%1.3GiB
EfficiencyLatency-500K/81,024446,696995512.2us3517440.0us789.7%290MiB
WorkloadJSON Comp4,096568,8597.19ms24.40ms6230.7%1.8GiB
WorkloadJSON Comp16,384558,71329.01ms59.00ms6286.4%2.1GiB
WorkloadJSON TLS4,096959,4084.46ms96.41ms6160.7%2.1GiB
Workload8Gbit51249,373127.2us1130.0us263.1%3.4GiB
WorkloadStatic TLS1,024697,5031.54ms32.70ms6046.4%1.6GiB
DatabaseAsync DB1,024281,5883.09ms11.10ms3471.2%1.5GiB
HTTP/2Baseline2567,917,6542.96ms14.66ms5177.4%1.6GiB
HTTP/2Baseline1,0247,428,63612.86ms85.01ms5367.1%1.7GiB
HTTP/2Static256512,15917.59ms96.97ms6137.4%1.7GiB
HTTP/2Static1,024476,95065.45ms215.23ms6011.0%3.1GiB
HTTP/2Baseline (h2c)2567,966,8582.99ms13.32ms5137.2%1.5GiB
HTTP/2Baseline (h2c)1,0247,547,34613.10ms54.68ms5287.0%1.6GiB
HTTP/2Baseline (h2c)4,0968,397,76049.47ms241.12ms5529.0%2.0GiB
HTTP/2JSON (h2c)1,0241,792,01418.02ms98.67ms5943.6%1.7GiB
HTTP/2JSON (h2c)4,0961,583,15979.76ms245.93ms5847.6%2.5GiB
HTTP/3Baseline641,819,2092.73ms8.18ms3720.5%545MiB
HTTP/3Static64225,14720.27ms46.00ms4135.5%938MiB
WebSocketEcho5123,501,002145us343us6089.0%1.3GiB
WebSocketEcho4,0963,550,0241.15ms4.24ms6016.8%1.5GiB
WebSocketEcho16,3843,142,9075.18ms13.60ms5849.5%2.0GiB
WebSocketEcho Pipelined51238,872,291210us1.55ms5707.5%1.3GiB
WebSocketEcho Pipelined4,09639,373,8561.67ms7.03ms5656.8%1.5GiB
WebSocketEcho Pipelined16,38433,326,8767.79ms20.50ms5687.0%2.0GiB
WebSocketEcho Short-lived5122,035,279159us540us5250.1%1.4GiB
WebSocketEcho Short-lived4,0962,366,0721.24ms6.43ms5763.9%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
edixoi6756-1%head to head
ioxide-pipes6398-7%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