veil
Infrastructure · Rust
veil 0.10 reverse proxy from its published container image (full-container build: epoll readiness reactor, no tokio), one process with four listeners. A Proxy-Wasm module loaded into veil answers /baseline11 (including the POST body), /baseline2, /pipeline and /json/{count}, serializing the JSON body per request from the dataset veil loads at startup; /static/* is veil's File backend (sendfile, on-the-fly compression on every protocol, caches that follow the disk). TLS via rustls: HTTP/1.1 on :8081, h2 and h3 (quiche) on :8443, h2c on :8082.
- Official repository
- Official website
- Benchmark implementation
- All Rust entries, compared
- Open the leaderboard
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 | 6 of 8 | 642 |
| HTTP/2 | 7 of 7 | 44 |
| HTTP/3 | 4 of 5 | 78 |
Every result
Alpha Round, 16 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 | 317,952 | 12.05ms | 635.40ms | 6189.8% | 363MiB |
| Connection | Pipelined | 4,096 | 596,569 | 1.72ms | 2.27ms | 6244.8% | 210MiB |
| Connection | Short-lived | 4,096 | 314,578 | 12.90ms | 170.70ms | 6085.8% | 497MiB |
| Workload | JSON TLS | 4,096 | 505,466 | 8.21ms | 78.36ms | 6533.4% | 481MiB |
| Workload | Static TLS | 1,024 | 96,568 | 10.56ms | 41.11ms | 1108.5% | 303MiB |
| HTTP/2 | Baseline | 256 | 517,996 | 36.98ms | 4.98s | 6146.8% | 297MiB |
| HTTP/2 | Baseline | 1,024 | 582,475 | 71.74ms | 4.96s | 6292.8% | 435MiB |
| HTTP/2 | Static | 256 | 14,947 | 512.33ms | 1.03s | 1845.6% | 1.6GiB |
| HTTP/2 | Static | 1,024 | 13,672 | 1.87s | 4.21s | 1921.8% | 2.4GiB |
| HTTP/2 | Baseline (h2c) | 256 | 577,634 | 31.05ms | 4.97s | 6120.6% | 277MiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 565,623 | 146.00ms | 5.00s | 6190.4% | 531MiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 562,333 | 541.90ms | 1.49s | 6074.1% | 1.6GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 521,882 | 33.93ms | 5.00s | 6247.9% | 362MiB |
| HTTP/2 | JSON (h2c) | 4,096 | 551,882 | 29.87ms | 5.00s | 6152.5% | 500MiB |
| HTTP/3 | Baseline | 64 | 526,130 | 7.25ms | 15.42ms | 3977.7% | 339MiB |
| HTTP/3 | Static | 64 | 13,867 | 279.19ms | 639.45ms | 1797.6% | 1.1GiB |
Compared with
The Rust entries around veil on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs veil | |
|---|---|---|---|
| cpeak | 7354 | +1046% | head to head |
| salvo | 2360 | +268% | head to head |
| toxi | 1516 | +136% | head to head |
Compare veil with any Rust entry · Compare veil with any entry, in any language · Every Rust entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry