ioxide-pipes
Engine · C# · engine: io_uring
ioxide-pipes — the ioxide io_uring runtime served through System.IO.Pipelines instead of its raw recv/send API, with Glyph11 parsing what comes off it. One reactor per core, each owning its ring and its share of the SO_REUSEPORT listeners. The pipe carries the design twice over: its reader owns the carry, so a request split across several recvs is handed over as one ReadOnlySequence with no copy and no buffer of the entry's own, and the TLS door on :8081 needs no second serve loop because TlsConnectionDualPipe is an IDuplexPipe like any other. TLS terminates ring-natively with kernel TX offload where the kernel offers the ULP (OpenSSL otherwise) and OpenSSL receive. Glyph11 takes that sequence as-is — query string already split, chunked bodies walked a chunk at a time without linearizing — so the entry is a transport loop and a routing decision rather than a parser. The async profile's wait is an IORING_OP_TIMEOUT through ioxide.timer, so a held connection costs a kernel deadline rather than a thread. Companion to the edixoi entry, which is the same profiles hand-written on the raw API.
Achievements
🥈 2 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.
| Medal | Award | Field | Rank |
|---|---|---|---|
| 🥈 Silver | Family composite | Composite · HTTP/1.1 | 2 of 19 |
| 🥈 Silver | Within its language | C# · HTTP/1.1 | 2 of 5 |
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.
| Family | Rank | Composite |
|---|---|---|
| HTTP/1.1 | 2 of 19 | 5466 |
Every result
Alpha Round, 7 runs. Requests per second is the best of three; latency, CPU and memory come from that run.
| Category | Profile | Conns | Req/sec | Avg | p99 | CPU | Memory |
|---|---|---|---|---|---|---|---|
| Connection | Baseline | 4,096 | 3,864,916 | 1.06ms | 1.53ms | 6211.2% | 1.3GiB |
| Connection | Short-lived | 4,096 | 2,649,602 | 1.42ms | 3.08ms | 5734.3% | 1.4GiB |
| Concurrency | Async Delay | 32,000 | 2,738,566 | 11.60ms | 13.20ms | 6243.7% | 1.7GiB |
| Efficiency | Latency-10K | 1,024 | 9,981 | 74.2us | 101.0us | 23.1% | 1.2GiB |
| Efficiency | Latency-1M | 1,024 | 997,615 | 96.0us | 174.0us | 2269.7% | 1.2GiB |
| Workload | JSON TLS | 4,096 | 1,743,647 | 2.40ms | 87.36ms | 5939.3% | 1.9GiB |
| Workload | 8Gbit | 512 | 49,301 | 118.3us | 585.0us | 235.0% | 3.3GiB |
Compared with
The C# entries around ioxide-pipes on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs ioxide-pipes | |
|---|---|---|---|
| genhttp-ioxide | 6211 | +14% | head to head |
| edixoi | 5832 | +7% | head to head |
| simplew-tuned | 5354 | -2% | head to head |
| ioxide | 4828 | -12% | head to head |
Compare ioxide-pipes with any C# entry · Compare ioxide-pipes with any entry, in any language · Every C# entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry