HttpArena
Frameworks

kron

Engine · Kotlin · engine: io_uring

kron — edixoi on Kotlin/Native: kron, the native 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, the ring driven by hand from Kotlin over the kernel's own io_uring header through cinterop (no liburing, no JVM, no JIT: one native binary). 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 BoringSSL linked statically into the binary, with kernel TX offload where the kernel has the tls module 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 (C#) and edixoi-kt (the JVM port), which serve the same profiles.

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.14 of 436443

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,027,5321.02ms1.69ms6420.7%1.3GiB
ConnectionShort-lived4,0962,690,4221.39ms2.06ms5964.9%1.4GiB
ConcurrencyAsync Delay32,0002,604,29812.19ms49.70ms5839.3%1.7GiB
EfficiencyLatency-10K1,0249,98281.5us115.0us30.7%1.3GiB
EfficiencyLatency-1M1,024997,51597.7us162.0us2286.9%1.3GiB
WorkloadJSON TLS4,0961,802,4671.32ms33.17ms5946.2%1.5GiB
Workload8Gbit51249,355101.5us121.0us194.4%3.4GiB

Compared with

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

EntryCompositevs kron
ktron7557+17%head to head
edixoi-kt6803+6%head to head
genhttp-kt-netty5539-14%head to head
ktor-tuned3879-40%head to head

Compare kron with any Kotlin entry · Compare kron with any entry, in any language · Every Kotlin entry, ranked

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