busker
Engine · Clojure
Minimal Busker engine benchmark pinned to the upstream documented source/native-shim pair with HTTP/1.1, TLS, HTTP/2, H2c, and native HTTP/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 | 34 of 34 | 21 |
| HTTP/2 | 12 of 12 | 1 |
| HTTP/3 | 6 of 6 | 0 |
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 | 6,285 | 56.20ms | 845.30ms | 161.0% | 3.6GiB |
| Connection | Pipelined | 4,096 | 5,241 | 600.59ms | 4.60s | 136.9% | 2.2GiB |
| Connection | Short-lived | 4,096 | 5,590 | 254.82ms | 4.52s | 148.5% | 1.5GiB |
| Concurrency | Async Delay | 32,000 | 4,419 | 91.95ms | 159.60ms | 239.1% | 2.6GiB |
| Efficiency | Latency-10K | 1,024 | 4,306 | 2311099.9us | 15798272.0us | 184.4% | 2.4GiB |
| Efficiency | Latency-1M | 1,024 | 5,115 | 9638367.9us | 18882560.0us | 139.7% | 2.4GiB |
| Efficiency | Latency-500K/8 | 1,024 | 3,725 | 7901599.9us | 17981440.0us | 161.4% | 6.4GiB |
| Workload | JSON Comp | 4,096 | 2,745 | 121.50ms | 3.79s | 157.3% | 1.6GiB |
| Workload | JSON Comp | 16,384 | 2,206 | 133.45ms | 3.94s | 284.2% | 1.6GiB |
| Workload | JSON TLS | 4,096 | 3,137 | 41.78ms | 136.85ms | 330.5% | 1.9GiB |
| Workload | 8Gbit | 512 | 2,992 | 1217369.5us | 3519488.0us | 127.5% | 2.1GiB |
| Workload | Static TLS | 1,024 | 2,234 | 61.39ms | 246.45ms | 129.2% | 1.1GiB |
| HTTP/2 | Baseline | 256 | - | - | - | 163.6% | 4.9GiB |
| HTTP/2 | Baseline | 1,024 | 48 | 545.54ms | 626.73ms | 111.1% | 19.4GiB |
| HTTP/2 | Static | 256 | 2,110 | 274.00ms | 1.14s | 136.0% | 1.9GiB |
| HTTP/2 | Static | 1,024 | 448 | 232.43ms | 1.19s | 4.2% | 1.0GiB |
| HTTP/2 | Baseline (h2c) | 256 | 3,282 | 2.24s | 4.97s | 293.9% | 2.5GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 3,106 | 2.33s | 4.99s | 320.3% | 2.7GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | - | 0us | 0us | 4.0% | 944MiB |
| HTTP/2 | JSON (h2c) | 1,024 | 4,123 | 755.69ms | 4.95s | 355.2% | 2.3GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 2,344 | 1.01s | 4.97s | 379.9% | 2.9GiB |
| HTTP/3 | Baseline | 64 | 127 | 355.15ms | 445.64ms | 0.0% | 0MiB |
| HTTP/3 | Static | 64 | 113 | 868.18ms | 1.28s | 4.0% | 1.0GiB |
Compared with
The Clojure entries around busker on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs busker | |
|---|---|---|---|
| ring-http-exchange | 3649 | +17113% | head to head |
| http-kit | 839 | +3859% | head to head |
| capra | 665 | +3036% | head to head |
Compare busker with any Clojure entry · Compare busker with any entry, in any language · Every Clojure entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry