mq-bridge
Emerging · Rust · standard configuration
mq-bridge async message-bridging library run as an HTTP server. A single catch-all http->response route dispatches on request metadata and replies through mq-bridge's inline-response fast path; hyper-util's auto connection builder serves HTTP/1.1 and HTTP/2 prior-knowledge (h2c) on the cleartext port (8080) and HTTP/2-over-TLS (ALPN h2) on 8443. Postgres via sqlx for async-db, dataset read from /data/dataset.json, static assets from /data/static, gzip negotiated by the library's Accept-Encoding-gated response compression.
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. 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 | 9 of 71 | 562 |
| HTTP/2 | 7 of 16 | 78 |
| WebSocket | 15 of 20 | 37 |
Every result
Alpha Round, 37 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 | 512 | 1,078,632 | 474us | 1.34ms | 3984.0% | 98MiB |
| Connection | Baseline | 4,096 | 1,176,223 | 3.48ms | 6.85ms | 4448.1% | 181MiB |
| Connection | Pipelined | 512 | 4,931,049 | 1.66ms | 3.70ms | 6226.0% | 50MiB |
| Connection | Pipelined | 4,096 | 4,998,403 | 13.09ms | 46.70ms | 6501.1% | 168MiB |
| Connection | Short-lived | 512 | 716,090 | 706us | 1.87ms | 4500.2% | 81MiB |
| Connection | Short-lived | 4,096 | 713,952 | 5.73ms | 24.10ms | 5350.7% | 258MiB |
| Workload | JSON | 4,096 | 891,396 | 4.26ms | 18.80ms | 5883.7% | 264MiB |
| Workload | JSON Comp | 512 | 78,928 | 6.49ms | 16.60ms | 5866.3% | 78MiB |
| Workload | JSON Comp | 4,096 | 407,543 | 10.03ms | 36.70ms | 6041.0% | 237MiB |
| Workload | JSON Comp | 16,384 | 384,511 | 42.13ms | 149.30ms | 5992.7% | 732MiB |
| Workload | JSON TLS | 4,096 | 942,048 | 4.51ms | 64.56ms | 5595.1% | 246MiB |
| Workload | Upload | 32 | 1,404 | 22.76ms | 81.10ms | 2924.9% | 1.6GiB |
| Workload | Upload | 256 | 1,471 | 167.77ms | 1.03s | 4773.8% | 4.8GiB |
| Workload | Static | 1,024 | 495,331 | 2.07ms | 9.30ms | 6587.3% | 237MiB |
| Workload | Static | 4,096 | 484,937 | 8.87ms | 44.81ms | 6592.2% | 805MiB |
| Workload | Static | 6,800 | 489,599 | 15.07ms | 102.36ms | 6476.6% | 1.3GiB |
| Workload | Static TLS | 1,024 | 415,105 | 2.47ms | 45.47ms | 6547.0% | 255MiB |
| Workload | Static TLS | 4,096 | 407,866 | 10.35ms | 82.33ms | 6436.1% | 800MiB |
| Workload | Static TLS | 6,800 | 404,021 | 17.70ms | 178.58ms | 6523.1% | 1.3GiB |
| Database | Async DB | 1,024 | 114,746 | 8.36ms | 11.20ms | 4705.5% | 132MiB |
| Multi-endpoint | API-4 | 256 | 29,538 | 7.33ms | 24.70ms | 394.2% | 46MiB |
| Multi-endpoint | API-16 | 1,024 | 91,454 | 9.51ms | 36.20ms | 1482.6% | 102MiB |
| HTTP/2 | Baseline | 256 | 542,860 | 46.38ms | 208.61ms | 4250.3% | 293MiB |
| HTTP/2 | Baseline | 1,024 | 514,296 | 184.38ms | 600.98ms | 4417.1% | 789MiB |
| HTTP/2 | Static | 256 | 340,393 | 23.50ms | 158.80ms | 5654.5% | 149MiB |
| HTTP/2 | Static | 1,024 | 246,138 | 126.28ms | 430.54ms | 3659.5% | 351MiB |
| HTTP/2 | Baseline (h2c) | 256 | 564,793 | 44.45ms | 169.29ms | 4389.1% | 261MiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 500,237 | 196.13ms | 663.00ms | 4422.9% | 830MiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 450,670 | 743.95ms | 3.24s | 4569.9% | 2.5GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 511,497 | 61.75ms | 194.77ms | 3241.8% | 377MiB |
| HTTP/2 | JSON (h2c) | 4,096 | 469,575 | 255.40ms | 1.10s | 3159.7% | 1.1GiB |
| WebSocket | Echo | 512 | 1,172,794 | 436us | 1.05ms | 1824.5% | 45MiB |
| WebSocket | Echo | 4,096 | 1,362,540 | 3.00ms | 4.62ms | 2209.3% | 155MiB |
| WebSocket | Echo | 16,384 | 1,098,016 | 14.70ms | 16.60ms | 2010.1% | 450MiB |
| WebSocket | Echo Pipelined | 512 | 5,265,146 | 1.55ms | 4.00ms | 6263.6% | 41MiB |
| WebSocket | Echo Pipelined | 4,096 | 5,655,074 | 11.56ms | 36.90ms | 6446.2% | 156MiB |
| WebSocket | Echo Pipelined | 16,384 | 5,559,653 | 45.83ms | 84.40ms | 6667.1% | 460MiB |
How the benchmark is run · The machine · Add or fix an entry