HttpArena
Frameworks

ktor

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

JetBrains Ktor 3.x on Netty with kotlinx.serialization, JDK 25.

Achievements

🥇 1 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
🥇 GoldWithin its languageKotlin · HTTP/1.11 of 3

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.127 of 763258
HTTP/216 of 23596
HTTP/39 of 13464
WebSocket18 of 23473

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0961,028,0973.99ms8.69ms5637.3%5.3GiB
ConnectionPipelined4,0961,651,69139.60ms51.20ms5065.3%8.7GiB
ConnectionShort-lived4,096801,6865.09ms51.60ms5453.1%9.4GiB
ConcurrencyAsync Delay32,000217,637144.95ms168.60ms2140.5%6.6GiB
EfficiencyLatency-10K1,0249,980126.6us166.0us66.4%493MiB
EfficiencyLatency-1M1,024997,698427.4us3313.0us5487.1%5.4GiB
EfficiencyLatency-500K/81,024230,7775393882.8us10612736.0us676.6%1.3GiB
WorkloadJSON Comp4,096213,49719.11ms66.40ms6177.3%9.1GiB
WorkloadJSON Comp16,384207,58677.81ms232.50ms6354.6%12.1GiB
WorkloadJSON TLS4,096515,6948.19ms76.51ms4815.7%5.5GiB
Workload8Gbit51249,311148.6us235.0us459.5%1.5GiB
WorkloadStatic TLS1,024253,3424.58ms109.24ms6168.4%3.8GiB
DatabaseAsync DB1,02448,25020.90ms24.90ms2337.6%2.6GiB
DatabaseFortunes1,02461,97715.20ms28.00ms5065.5%10.8GiB
HTTP/2Baseline256793,99431.97ms153.52ms6482.2%13.6GiB
HTTP/2Baseline1,024790,078124.40ms338.54ms6014.8%24.5GiB
HTTP/2Static256218,30637.08ms185.59ms5966.4%7.0GiB
HTTP/2Static1,024197,962159.49ms659.25ms5963.9%12.2GiB
HTTP/2Baseline (h2c)256815,58031.28ms124.13ms6493.9%11.7GiB
HTTP/2Baseline (h2c)1,024737,088138.39ms636.47ms6407.3%25.1GiB
HTTP/2Baseline (h2c)4,096487,096743.76ms2.22s5692.8%31.2GiB
HTTP/2JSON (h2c)1,024407,61077.51ms438.85ms4978.0%11.4GiB
HTTP/2JSON (h2c)4,096414,514292.72ms805.69ms5103.6%17.1GiB
HTTP/3Baseline64340,63212.69ms53.45ms4394.1%4.9GiB
HTTP/3Static64105,63234.70ms122.12ms6378.0%3.3GiB
WebSocketEcho5121,063,564480us1.03ms3422.0%2.7GiB
WebSocketEcho4,096999,2654.05ms9.32ms3424.3%2.8GiB
WebSocketEcho16,384680,77023.45ms46.50ms3267.8%4.2GiB
WebSocketEcho Pipelined51211,784,745694us1.82ms3371.8%8.6GiB
WebSocketEcho Pipelined4,09611,399,1525.74ms13.70ms3414.2%7.8GiB
WebSocketEcho Pipelined16,3849,035,67028.25ms97.20ms3318.0%8.9GiB

Compared with

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

EntryCompositevs ktor
ktor-tuned4003+23%head to head
neton2408-26%head to head
http4k1855-43%head to head

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

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