pyronova
Experimental · Python · tuned configuration · completeness 4/4
Pyronova — Python web framework with a Rust core (hyper + tokio + rustls + mimalloc) and PEP 684 sub-interpreter workers for true multi-core parallelism. Opt-in features: gzip/brotli compression, rustls TLS with h2/h1 ALPN, streaming body ingest, async Postgres via sqlx::PgPool. Handlers are standard Python functions routed via decorators.
Achievements
🥇 1 Gold · 🥈 3 Silver. 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 3 |
| 🥈 Silver | Test profile | HTTP/2 · Static | 2 of 3 |
| 🥈 Silver | Test profile | Workload · JSON Comp | 2 of 3 |
| 🥈 Silver | Test profile | Workload · JSON TLS | 2 of 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 | 3 of 3 | 2404 |
| HTTP/2 | 3 of 3 | 570 |
| gRPC | 1 of 2 | 1698 |
Every result
Alpha Round, 18 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 | 825,534 | 4.97ms | 9.79ms | 6355.9% | 1.0GiB |
| Connection | Pipelined | 4,096 | 4,171,572 | 15.68ms | 26.60ms | 6426.0% | 997MiB |
| Connection | Short-lived | 4,096 | 325,540 | 12.53ms | 32.90ms | 2456.0% | 1.0GiB |
| Efficiency | Latency-10K | 1,024 | 9,983 | 96.8us | 143.0us | 48.4% | 872MiB |
| Efficiency | Latency-1M | 1,024 | 757,184 | 2132156.2us | 8185856.0us | 6461.1% | 874MiB |
| Workload | JSON Comp | 4,096 | 463,958 | 8.81ms | 19.90ms | 6320.4% | 1.1GiB |
| Workload | JSON Comp | 16,384 | 450,589 | 36.03ms | 57.10ms | 6649.3% | 1.7GiB |
| Workload | JSON TLS | 4,096 | 780,948 | 5.24ms | 5.24ms | 6562.1% | 1.2GiB |
| Workload | 8Gbit | 512 | 28,618 | 1031006.2us | 2058752.0us | 366.6% | 902MiB |
| Database | Async DB | 1,024 | 23,302 | 43.74ms | 131.70ms | 761.9% | 894MiB |
| HTTP/2 | Baseline | 256 | 1,223,690 | 22.35ms | 22.35ms | 6298.2% | 1.0GiB |
| HTTP/2 | Baseline | 1,024 | 1,357,933 | 71.79ms | 71.79ms | 6412.9% | 1.6GiB |
| HTTP/2 | Static | 256 | 288,301 | 29.86ms | 29.86ms | 6296.2% | 1.8GiB |
| HTTP/2 | Static | 1,024 | 267,822 | 109.08ms | 109.08ms | 6296.0% | 2.3GiB |
| gRPC | Unary | 256 | 5,257,876 | 4.70ms | 4.70ms | 6098.4% | 1.1GiB |
| gRPC | Unary | 1,024 | 4,149,704 | 23.87ms | 23.87ms | 6429.5% | 1.8GiB |
| gRPC | Unary TLS | 256 | 5,057,301 | 4.94ms | 4.94ms | 5956.6% | 1.1GiB |
| gRPC | Unary TLS | 1,024 | 4,015,187 | 24.34ms | 24.34ms | 6430.7% | 1.6GiB |
Compared with
The Python entries around pyronova on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs pyronova | |
|---|---|---|---|
| fastpysgi-wsgi | 3148 | +31% | head to head |
| mq-bridge-py | 2218 | -8% | head to head |
| aiohttp | 2072 | -14% | head to head |
Compare pyronova with any Python entry · Compare pyronova with any entry, in any language · Every Python entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry