HttpArena
Frameworks

genhttp-kt-netty

Experimental · Kotlin · engine: netty · standard configuration · completeness 4/4

Kotlin port of the GenHTTP web server on JDK 25, running on its Netty engine (the counterpart of GenHTTP's ioxide engine): one Netty event loop per core on the native epoll transport, every connection served by a coroutine on the loop that accepted it, TLS through OpenSSL (netty-tcnative). Implemented with web services and a layout router, JSON via Jackson, Postgres via HikariCP and JDBC on a dispatcher beside the event loops.

Achievements

🥈 2 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.

MedalAwardFieldRank
🥈 SilverWithin its languageKotlin · HTTP/1.12 of 3
🥈 SilverTest profileEfficiency · Latency-1M2 of 17
🥉 BronzeTest profileWorkload · 8Gbit3 of 17

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.110 of 195539
WebSocket9 of 142162

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0962,800,3221.46ms4.43ms6143.4%2.0GiB
ConnectionPipelined4,09618,024,7453.65ms7.85ms6537.3%2.6GiB
ConnectionShort-lived4,0962,144,0291.89ms28.90ms6161.1%2.8GiB
ConcurrencyAsync Delay32,0002,065,94515.39ms25.90ms6282.5%3.8GiB
EfficiencyLatency-10K1,0249,98277.3us111.0us35.0%364MiB
EfficiencyLatency-1M1,024997,974109.7us203.0us2768.0%978MiB
EfficiencyLatency-500K/81,024438,4901185836.3us3900416.0us796.6%855MiB
WorkloadJSON Comp4,096537,9467.48ms199.50ms6144.2%2.5GiB
WorkloadJSON Comp16,384548,10627.77ms712.00ms6394.4%2.6GiB
WorkloadJSON TLS4,096894,3194.62ms40.08ms6174.9%3.3GiB
Workload8Gbit51249,366108.5us148.0us269.2%436MiB
WorkloadStatic TLS1,024421,6622.67ms25.92ms4095.8%1.1GiB
DatabaseAsync DB1,02442,24724.06ms77.70ms5690.0%1.4GiB
WebSocketEcho5123,476,888146us363us6486.6%1.2GiB
WebSocketEcho4,0963,478,7381.17ms2.59ms6505.2%1.9GiB
WebSocketEcho16,3842,985,1785.33ms11.60ms6161.9%3.4GiB
WebSocketEcho Pipelined51245,326,675180us464us6179.4%4.1GiB
WebSocketEcho Pipelined4,09644,861,4561.46ms4.70ms5977.3%6.7GiB
WebSocketEcho Pipelined16,38434,989,4567.29ms24.10ms5906.7%10.3GiB
WebSocketEcho Short-lived5121,667,945187us641us6293.5%2.2GiB
WebSocketEcho Short-lived4,0961,788,771419us1.99ms6290.7%3.7GiB

Compared with

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

EntryCompositevs genhttp-kt-netty
ktron7557+36%head to head
edixoi-kt6803+23%head to head
kron6443+16%head to head
ktor-tuned3879-30%head to head
genhttp-kt3783-32%head to head

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

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