HttpArena
Frameworks

edixoi-kt

Engine · Kotlin · engine: io_uring

edixoi-kt — edixoi on the JVM: the Kotlin port of the ioxide io_uring runtime, on its 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 the syscalls made straight through the Foreign Function & Memory API (no liburing, no JNI shim). Handlers are Kotlin suspend functions that the reactor resumes inline on the thread that took the completion, with no dispatcher and no thread pool. 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 edixoi's, ported to Kotlin — 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 with the BoringSSL ioxide bundles, called through FFM, with kernel TX offload and BoringSSL receive. The async profile's wait is an IORING_OP_TIMEOUT on the reactor's ring, so a held connection costs a kernel deadline rather than a thread. Companion to edixoi, which serves the same profiles in C#.

Achievements

🥇 4 Gold. 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 43
🥇 GoldTest profileConnection · Short-lived1 of 43
🥇 GoldTest profileWorkload · 8Gbit1 of 24
🥇 GoldTest profileWorkload · JSON TLS1 of 31

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 436803

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0964,205,573973us1.25ms6173.7%1.5GiB
ConnectionShort-lived4,0962,742,4661.36ms2.17ms5192.0%2.2GiB
ConcurrencyAsync Delay32,0002,722,94811.66ms14.70ms5728.4%2.7GiB
EfficiencyLatency-10K1,0249,98268.1us97.0us21.8%1.4GiB
EfficiencyLatency-1M1,024997,61193.9us165.0us2113.1%1.4GiB
WorkloadJSON TLS4,0961,851,3031.38ms33.99ms5627.7%1.6GiB
Workload8Gbit51249,39786.6us113.0us186.5%3.5GiB

Compared with

The Kotlin entries around edixoi-kt on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs edixoi-kt
ktron7557+11%head to head
kron6443-5%head to head
genhttp-kt-netty5539-19%head to head

Compare edixoi-kt with any Kotlin entry · Compare edixoi-kt with any entry, in any language · Every Kotlin entry, ranked

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