neton
Emerging · Kotlin · engine: netonstream · standard configuration · completeness 4/4
Neton with the Kotlin/Native neton-http-netonstream adapter, using com.netonstream io/http/tls and OpenSSL. The same framework routes, middleware, request parsing and response pipeline as neton-hyper; only the engine differs. HTTP/1.1 on 8080, h2c on 8082, h1 TLS on 8081 and h2 TLS on 8443.
Achievements
🥈 1 Silver. 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.
| Medal | Award | Field | Rank |
|---|---|---|---|
| 🥈 Silver | Within its language | Kotlin · HTTP/1.1 | 2 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.
| Family | Rank | Composite |
|---|---|---|
| HTTP/1.1 | 38 of 76 | 2408 |
| HTTP/2 | 15 of 23 | 616 |
Every result
Alpha Round, 23 runs. Requests per second is the best of three; latency, CPU and memory come from that run.
| Category | Profile | Conns | Req/sec | Avg | p99 | CPU | Memory |
|---|---|---|---|---|---|---|---|
| Connection | Baseline | 4,096 | 656,223 | 1.85ms | 9.52ms | 5364.1% | 1.2GiB |
| Connection | Pipelined | 4,096 | 433,496 | 38.63ms | 550.70ms | 3939.8% | 1.2GiB |
| Connection | Short-lived | 4,096 | 534,218 | 480us | 2.15ms | 2228.7% | 1.1GiB |
| Concurrency | Async Delay | 32,000 | 107,207 | 96.32ms | 134.40ms | 732.9% | 1.4GiB |
| Efficiency | Latency-10K | 1,024 | 9,915 | 89.5us | 123.0us | 29.1% | 418MiB |
| Efficiency | Latency-1M | 1,024 | 954,181 | 369708.2us | 739584.0us | 4900.0% | 1.1GiB |
| Efficiency | Latency-500K/8 | 1,024 | 252,788 | 4761037.2us | 9646080.0us | 780.7% | 988MiB |
| Workload | JSON Comp | 4,096 | 130,368 | 6.28ms | 29.90ms | 6135.2% | 1.2GiB |
| Workload | JSON Comp | 16,384 | 132,418 | 8.25ms | 41.90ms | 5972.1% | 1.2GiB |
| Workload | JSON TLS | 4,096 | 299,158 | 11.28ms | 117.25ms | 6168.3% | 1.3GiB |
| Workload | 8Gbit | 512 | 48,425 | 356.4us | 10492.0us | 507.9% | 1.1GiB |
| Workload | Static TLS | 1,024 | 385,625 | 3.26ms | 56.56ms | 6212.2% | 1.2GiB |
| Database | Async DB | 1,024 | 25,286 | 38.70ms | 52.60ms | 1243.1% | 1.4GiB |
| Database | Fortunes | 1,024 | 11,204 | 81.96ms | 323.30ms | 2122.0% | 1.6GiB |
| HTTP/2 | Baseline | 256 | 661,829 | 37.68ms | 145.75ms | 4858.4% | 1.2GiB |
| HTTP/2 | Baseline | 1,024 | 629,296 | 123.32ms | 479.26ms | 4853.3% | 1.6GiB |
| HTTP/2 | Static | 256 | 356,414 | 22.57ms | 142.70ms | 5418.1% | 1.2GiB |
| HTTP/2 | Static | 1,024 | 263,463 | 106.27ms | 371.85ms | 3587.7% | 1.4GiB |
| HTTP/2 | Baseline (h2c) | 256 | 667,367 | 37.47ms | 154.17ms | 4692.1% | 1.3GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 637,113 | 118.78ms | 505.36ms | 4870.3% | 1.6GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 549,590 | 228.36ms | 1.30s | 3903.8% | 2.2GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 280,778 | 98.57ms | 471.23ms | 4296.8% | 1.4GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 266,278 | 273.20ms | 3.98s | 4197.4% | 1.7GiB |
Compared with
The Kotlin entries around neton on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs neton | |
|---|---|---|---|
| ktor-tuned | 4003 | +66% | head to head |
| ktor | 3258 | +35% | head to head |
| http4k | 1855 | -23% | head to head |
Compare neton with any Kotlin entry · Compare neton with any entry, in any language · Every Kotlin entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry