Kotlin web framework comparison: any two, head to head
ktor-ghost is quicker than ktor on 18 of the 29 profiles they both run, and behind on 11. On the HTTP/1.1 composite they score 2835 and 2590.
Pick any two of the 4 Kotlin entries. Requests per second is the best of three runs and the delta is the first column against the second; every row is the same profile at the same connection count, on the same machine. What each profile measures.
| Profile | Conns | ktor-ghost req/sec | ktor req/sec | Delta | ktor-ghost p99 | ktor p99 |
|---|---|---|---|---|---|---|
| Baseline | 4,096 | 838,039 | 822,062 | +2% | 9.60ms | 9.82ms |
| Pipelined | 4,096 | 654,297 | 584,867 | +12% | 146.90ms | 138.90ms |
| Short-lived | 4,096 | 655,894 | 665,691 | -1% | 54.10ms | 49.70ms |
| Async Delay | 32,000 | 224,114 | 244,271 | -8% | 225.40ms | 201.10ms |
| Latency-10K | 1,024 | 9,981 | 9,980 | +0% | 183.0us | 188.0us |
| Latency-1M | 1,024 | 866,759 | 878,822 | -1% | 2929664.0us | 2642944.0us |
| Latency-500K/8 | 1,024 | 205,267 | 197,383 | +4% | 11628544.0us | 11939840.0us |
| JSON Comp | 4,096 | 217,405 | 193,020 | +13% | 42.30ms | 82.30ms |
| JSON Comp | 16,384 | 218,199 | 189,511 | +15% | 145.20ms | 260.80ms |
| JSON TLS | 4,096 | 607,943 | 391,978 | +55% | 266.87ms | 11.92ms |
| 8Gbit | 512 | 49,249 | 49,202 | +0% | 295.0us | 320.0us |
| Static TLS | 1,024 | 191,799 | 204,709 | -6% | 183.27ms | 245.95ms |
| Async DB | 1,024 | 113,590 | 103,951 | +9% | 11.20ms | 13.60ms |
| Fortunes | 1,024 | 49,991 | 51,030 | -2% | 43.10ms | 41.20ms |
| Baseline | 256 | 515,664 | 558,485 | -8% | 282.20ms | 44.86ms |
| Baseline | 1,024 | 495,732 | 541,980 | -9% | 768.20ms | 184.02ms |
| Static | 256 | 196,780 | 189,737 | +4% | 299.14ms | 41.76ms |
| Static | 1,024 | 184,792 | 180,206 | +3% | 530.61ms | 173.56ms |
| Baseline (h2c) | 256 | 391,103 | 412,245 | -5% | 359.42ms | 67.92ms |
| Baseline (h2c) | 1,024 | 362,388 | 402,964 | -10% | 1.95s | 210.39ms |
| Baseline (h2c) | 4,096 | 392,445 | 279,991 | +40% | 2.26s | 1.37s |
| JSON (h2c) | 1,024 | 424,461 | 314,284 | +35% | 319.32ms | 101.21ms |
| JSON (h2c) | 4,096 | 389,919 | 282,755 | +38% | 1.05s | 426.56ms |
| Echo | 512 | 1,021,563 | 1,021,279 | +0% | 1.33ms | 1.13ms |
| Echo | 4,096 | 973,072 | 980,019 | -1% | 9.46ms | 8.98ms |
| Echo | 16,384 | 676,216 | 645,400 | +5% | 42.90ms | 42.30ms |
| Echo Pipelined | 512 | 11,253,401 | 11,215,557 | +0% | 1.93ms | 2.13ms |
| Echo Pipelined | 4,096 | 11,090,871 | 10,647,634 | +4% | 14.40ms | 15.10ms |
| Echo Pipelined | 16,384 | 8,286,836 | 8,879,790 | -7% | 69.70ms | 61.10ms |
Common comparisons
ktor-ghost vs ktor · ktor-ghost vs http4k · ktor-ghost vs neton · ktor vs http4k · ktor vs neton · http4k vs neton
Questions
Is ktor-ghost faster than ktor?
ktor-ghost is quicker than ktor on 18 of the 29 profiles they both run, and behind on 11. On the HTTP/1.1 composite they score 2835 and 2590. Both run on the same machine, in the same round, against the same profiles.
Is ktor-ghost faster than http4k?
ktor-ghost is quicker than http4k on 10 of the 11 profiles they both run, and behind on 1. On the HTTP/1.1 composite they score 2835 and 1901. Both run on the same machine, in the same round, against the same profiles.
Is ktor-ghost faster than neton?
ktor-ghost is quicker than neton on 8 of the 11 profiles they both run, and behind on 3. On the HTTP/1.1 composite they score 2835 and 1339. Both run on the same machine, in the same round, against the same profiles.
Is ktor faster than http4k?
ktor is quicker than http4k on 9 of the 11 profiles they both run, and behind on 1. On the HTTP/1.1 composite they score 2590 and 1901. Both run on the same machine, in the same round, against the same profiles.
Which Kotlin framework is fastest overall?
ktor-ghost holds the highest HTTP/1.1 composite of the Kotlin entries, at 2835. The composite is throughput over the whole suite; if a service is one shape of workload, compare that profile on its own in the table above, because the order changes.
Every Kotlin entry
Results updated · Kotlin composite ranking · Compare across languages · Other languages · Open the leaderboard