mq-bridge-py
Emerging · Python · engine: mq-bridge · standard configuration
mq-bridge Python bindings (mq_bridge_py). A single http->response route dispatches on request metadata while HTTP framing stays in Rust; cleartext HTTP/1.1 + h2c run on 8080/8082, optional TLS listeners serve HTTP/2 on 8443 and HTTP/1.1 on 8081, and the inline-response fast path keeps responses off the GIL so the Python handler runs only the per-request dispatch.
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 | 23 of 71 | 319 |
| HTTP/2 | 6 of 16 | 80 |
Every result
Alpha Round, 31 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 | 840,257 | 609us | 1.41ms | 6647.5% | 2.9GiB |
| Connection | Baseline | 4,096 | 1,209,537 | 3.39ms | 7.79ms | 6599.4% | 3.6GiB |
| Connection | Pipelined | 512 | 1,583,489 | 5.17ms | 13.70ms | 6473.9% | 2.8GiB |
| Connection | Pipelined | 4,096 | 2,654,617 | 24.70ms | 58.10ms | 6527.2% | 3.2GiB |
| Connection | Short-lived | 512 | 671,068 | 754us | 3.30ms | 6585.4% | 3.4GiB |
| Connection | Short-lived | 4,096 | 953,877 | 4.28ms | 20.60ms | 6504.6% | 5.2GiB |
| Workload | JSON | 4,096 | 331,599 | 12.06ms | 49.50ms | 6500.5% | 3.6GiB |
| Workload | JSON Comp | 512 | 59,879 | 8.55ms | 35.70ms | 6434.4% | 3.3GiB |
| Workload | JSON Comp | 4,096 | 98,861 | 41.28ms | 125.30ms | 6491.6% | 4.8GiB |
| Workload | JSON Comp | 16,384 | 118,351 | 135.75ms | 303.50ms | 6256.4% | 6.4GiB |
| Workload | JSON TLS | 4,096 | 331,826 | 12.35ms | 72.71ms | 6684.0% | 4.1GiB |
| Workload | Upload | 32 | 1,112 | 28.75ms | 89.50ms | 3398.3% | 21.6GiB |
| Workload | Upload | 256 | 1,093 | 225.81ms | 980.80ms | 6492.3% | 29.7GiB |
| Workload | Static | 1,024 | 342,219 | 3.16ms | 42.26ms | 6619.0% | 3.7GiB |
| Workload | Static | 4,096 | 372,179 | 11.34ms | 149.64ms | 6564.3% | 7.3GiB |
| Workload | Static | 6,800 | 356,167 | 19.52ms | 187.93ms | 6497.5% | 10.2GiB |
| Workload | Static TLS | 1,024 | 298,762 | 3.58ms | 46.37ms | 6633.1% | 3.8GiB |
| Workload | Static TLS | 4,096 | 316,050 | 13.28ms | 140.15ms | 6495.2% | 7.5GiB |
| Workload | Static TLS | 6,800 | 301,755 | 22.91ms | 203.95ms | 6438.6% | 10.6GiB |
| Database | Async DB | 1,024 | 77,506 | 12.73ms | 59.80ms | 5400.8% | 5.2GiB |
| Multi-endpoint | API-4 | 256 | 8,777 | 29.10ms | 162.90ms | 401.9% | 2.9GiB |
| Multi-endpoint | API-16 | 1,024 | 35,731 | 27.44ms | 150.70ms | 1737.9% | 3.6GiB |
| HTTP/2 | Baseline | 256 | 1,010,292 | 27.31ms | 138.55ms | 6615.9% | 13.4GiB |
| HTTP/2 | Baseline | 1,024 | 929,222 | 101.66ms | 333.62ms | 6550.6% | 21.0GiB |
| HTTP/2 | Static | 256 | 234,818 | 35.23ms | 384.90ms | 6595.9% | 7.1GiB |
| HTTP/2 | Static | 1,024 | 265,705 | 118.44ms | 456.67ms | 6542.7% | 9.5GiB |
| HTTP/2 | Baseline (h2c) | 256 | 964,820 | 28.19ms | 142.50ms | 6683.8% | 12.7GiB |
| HTTP/2 | Baseline (h2c) | 1,024 | 904,557 | 109.65ms | 392.56ms | 6665.8% | 19.8GiB |
| HTTP/2 | Baseline (h2c) | 4,096 | 872,281 | 411.23ms | 828.57ms | 6550.7% | 26.2GiB |
| HTTP/2 | JSON (h2c) | 1,024 | 320,500 | 100.18ms | 319.92ms | 6629.2% | 10.1GiB |
| HTTP/2 | JSON (h2c) | 4,096 | 314,660 | 385.57ms | 844.83ms | 6528.1% | 15.5GiB |
How the benchmark is run · The machine · Add or fix an entry