edixoi
Engine · C# · engine: io_uring
edixoi — the ioxide io_uring runtime on the raw recv/send API, and nothing above it. One reactor per core, each owning its ring and its share of the SO_REUSEPORT listeners; multishot accept and recv into provided buffer rings, with continuations resuming inline on the reactor thread that took the request. The HTTP/1.1 handling (request line, query string, case-insensitive headers, Content-Length and chunked bodies, keep-alive, pipelining, reads fragmented across recv boundaries) is hand-written against that API — no framework, no router. One handler answers on both doors: plaintext on :8080, and TLS on :8081 for json-tls and the 8gbit echo, terminated ring-natively with kernel TX offload where the kernel offers the ULP (OpenSSL otherwise) and OpenSSL receive. 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 ioxide-pipes entry, which serves the same profiles over System.IO.Pipelines.
Achievements
🥇 3 Gold · 🥈 1 Silver · 🥉 1 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.
| Medal | Award | Field | Rank |
|---|---|---|---|
| 🥇 Gold | Family composite | Composite · HTTP/1.1 | 1 of 19 |
| 🥇 Gold | Within its language | C# · HTTP/1.1 | 1 of 5 |
| 🥇 Gold | Test profile | Connection · Short-lived | 1 of 19 |
| 🥈 Silver | Test profile | Workload · JSON TLS | 2 of 10 |
| 🥉 Bronze | Test profile | Workload · 8Gbit | 3 of 7 |
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 | 1 of 19 | 5832 |
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 | 4,140,626 | 989us | 1.38ms | 6439.9% | 1.3GiB |
| Connection | Short-lived | 4,096 | 2,739,141 | 1.36ms | 2.32ms | 5542.9% | 1.4GiB |
| Concurrency | Async Delay | 32,000 | 2,667,684 | 11.91ms | 18.10ms | 5916.2% | 1.8GiB |
| Efficiency | Latency-10K | 1,024 | 9,981 | 71.5us | 99.0us | 21.8% | 1.2GiB |
| Efficiency | Latency-1M | 1,024 | 997,884 | 94.1us | 167.0us | 2128.3% | 1.2GiB |
| Workload | JSON TLS | 4,096 | 1,804,773 | 1.45ms | 83.59ms | 6177.7% | 1.6GiB |
| Workload | 8Gbit | 512 | 49,339 | 97.0us | 116.0us | 178.4% | 3.3GiB |
Compared with
The C# entries around edixoi on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs edixoi | |
|---|---|---|---|
| genhttp-ioxide | 6211 | +6% | head to head |
| ioxide-pipes | 5466 | -6% | head to head |
| simplew-tuned | 5354 | -8% | head to head |
Compare edixoi with any C# entry · Compare edixoi with any entry, in any language · Every C# entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry