valk
Experimental · Valk · engine: valk.http · standard configuration · completeness 4/4
Valk's standard library HTTP/1.1, HTTP/2 and WebSocket server (io_uring with epoll fallback), built-in router, JSON serializer, static file server and response compression.
- Official repository
- Official website
- Benchmark implementation
- All Valk entries, compared
- Open the leaderboard
Achievements
🥇 1 Gold · 🥉 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.
| Medal | Award | Field | Rank |
|---|---|---|---|
| 🥇 Gold | Test profile | Efficiency · Latency-10K | 1 of 28 |
| 🥉 Bronze | Test profile | Efficiency · Latency-1M | 3 of 28 |
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 | 11 of 30 | 5610 |
| HTTP/2 | 10 of 16 | 1393 |
| WebSocket | 8 of 22 | 2555 |
Every result
Alpha Round, 29 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 | 3,903,035 | 1.05ms | 1.75ms | 6507.1% | 378MiB |
| Connection | Pipelined | 4,096 | 17,112,901 | 3.83ms | 19.70ms | 3148.5% | 407MiB |
| Connection | Short-lived | 4,096 | 2,692,049 | 1.46ms | 10.40ms | 6088.1% | 419MiB |
| Concurrency | Async Delay | 32,000 | 1,979,417 | 16.04ms | 36.60ms | 5152.2% | 888MiB |
| Efficiency | Latency-10K | 1,024 | 9,984 | 426.4us | 2015.0us | 30.5% | 291MiB |
| Efficiency | Latency-1M | 1,024 | 998,033 | 118.8us | 192.0us | 2587.8% | 309MiB |
| Efficiency | Latency-500K/8 | 1,024 | 488,890 | 190866.3us | 1743360.0us | 822.2% | 64MiB |
| Workload | JSON Comp | 4,096 | 665,876 | 6.12ms | 57.40ms | 3380.9% | 494MiB |
| Workload | JSON Comp | 16,384 | 494,236 | 32.24ms | 493.40ms | 2711.6% | 699MiB |
| Workload | JSON TLS | 4,096 | 444,739 | 9.29ms | 51.02ms | 1952.2% | 813MiB |
| Workload | 8Gbit | 512 | 49,159 | 93.7us | 117.0us | 226.8% | 304MiB |
| Workload | Static TLS | 1,024 | 237,738 | 4.64ms | 35.37ms | 2389.0% | 450MiB |
| HTTP/2 | Baseline | 256 | 7,732,123 | 3.45ms | 43.41ms | 1398.9% | 351MiB |
| HTTP/2 | Baseline | 1,024 | 4,369,130 | 23.04ms | 134.23ms | 984.9% | 480MiB |
| HTTP/2 | Static | 256 | 546,373 | 16.30ms | 109.40ms | 6076.1% | 568MiB |
| HTTP/2 | Static | 1,024 | 471,120 | 67.38ms | 221.99ms | 6616.2% | 1.2GiB |
| HTTP/2 | Baseline (h2c) | 256 | 8,965,367 | 2.91ms | 60.27ms | 1484.8% | 321MiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 4,748,613 | 21.35ms | 393.27ms | 971.6% | 390MiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 6,709,587 | 64.30ms | 1.04s | 1581.1% | 1021MiB |
| HTTP/2 | JSON (h2c) | 1,024 | 580,941 | 55.51ms | 589.80ms | 746.8% | 464MiB |
| HTTP/2 | JSON (h2c) | 4,096 | 959,346 | 132.74ms | 2.43s | 1211.9% | 1.1GiB |
| WebSocket | Echo | 512 | 3,978,479 | 128us | 320us | 6438.0% | 283MiB |
| WebSocket | Echo | 4,096 | 4,198,097 | 974us | 1.89ms | 6429.4% | 389MiB |
| WebSocket | Echo | 16,384 | 3,778,629 | 4.22ms | 8.21ms | 6409.7% | 986MiB |
| WebSocket | Echo Pipelined | 512 | 58,865,763 | 138us | 358us | 6496.2% | 280MiB |
| WebSocket | Echo Pipelined | 4,096 | 57,508,684 | 1.14ms | 2.28ms | 6473.6% | 394MiB |
| WebSocket | Echo Pipelined | 16,384 | 48,260,445 | 5.26ms | 10.50ms | 5768.1% | 1.0GiB |
| WebSocket | Echo Short-lived | 512 | 1,671,429 | 131us | 495us | 4478.2% | 319MiB |
| WebSocket | Echo Short-lived | 4,096 | 1,963,668 | 510us | 4.79ms | 4367.0% | 383MiB |
Compare valk with any entry, in any language · Every Valk entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry