HttpArena
Frameworks

mipyre

Experimental · Python · tuned configuration · completeness 4/4

mipyre — Python web framework with a Rust core (hyper + tokio + rustls + mimalloc): one pinned thread per physical core, each with its own PEP 684 sub-interpreter, so Python handlers run on every core at once. Opt-in features: gzip/brotli compression, rustls TLS with h2/h1 ALPN, precompressed static files, async Postgres via sqlx. Handlers are standard Python functions routed via decorators.

Achievements

🥇 1 Gold. 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.

MedalAwardFieldRank
🥇 GoldTest profileEfficiency · Latency-10K1 of 24

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.

FamilyRankComposite
HTTP/1.118 of 264185
HTTP/210 of 131251
gRPC7 of 7952

Every result

Alpha Round, 27 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0961,633,0162.51ms4.62ms3281.1%1.0GiB
ConnectionPipelined4,09613,166,1984.98ms5.85ms3219.9%1.0GiB
ConnectionShort-lived4,0961,235,1593.31ms12.70ms3265.7%1.0GiB
ConcurrencyAsync Delay32,000238,348132.59ms217.40ms1809.1%2.7GiB
EfficiencyLatency-10K1,0249,98381.3us136.0us34.8%801MiB
EfficiencyLatency-1M1,024997,756106.4us189.0us2267.2%803MiB
EfficiencyLatency-500K/81,024237,5545192181.3us11014144.0us387.6%204MiB
WorkloadJSON Comp4,096376,23910.87ms30.00ms3143.7%1.1GiB
WorkloadJSON Comp16,384366,78544.24ms93.90ms3131.4%1.9GiB
WorkloadJSON TLS4,096695,2825.86ms30.40ms3369.1%1011MiB
Workload8Gbit51249,36592.9us116.0us207.0%779MiB
WorkloadStatic TLS1,0241,054,1300.93ms11.63ms3301.9%962MiB
DatabaseAsync DB1,02478,74212.66ms66.40ms2076.0%862MiB
DatabaseFortunes1,02439,29725.45ms35.80ms2799.9%891MiB
HTTP/2Baseline2563,780,5166.94ms24.81ms3161.6%922MiB
HTTP/2Baseline1,0243,147,14030.05ms102.57ms3210.7%1.4GiB
HTTP/2Static256940,3518.21ms120.92ms3136.9%1.0GiB
HTTP/2Static1,024857,26035.82ms88.12ms3218.0%1.3GiB
HTTP/2Baseline (h2c)2563,859,2046.99ms17.20ms3165.9%950MiB
HTTP/2Baseline (h2c)1,0243,190,39430.52ms59.55ms3211.1%1.4GiB
HTTP/2Baseline (h2c)4,0963,073,490128.29ms240.62ms3207.9%3.5GiB
HTTP/2JSON (h2c)1,024835,98238.18ms88.35ms3213.8%1.1GiB
HTTP/2JSON (h2c)4,096802,823155.53ms312.31ms3214.9%2.0GiB
gRPCUnary2563,762,6837.03ms19.47ms3207.6%1.0GiB
gRPCUnary1,0242,975,83832.62ms75.13ms3208.9%1.6GiB
gRPCUnary TLS2563,638,3697.06ms15.19ms3210.2%1022MiB
gRPCUnary TLS1,0242,885,06932.73ms93.24ms3208.5%1.7GiB

Compared with

The Python entries around mipyre on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs mipyre
fastpysgi-wsgi3110-26%head to head
mq-bridge-py2109-50%head to head

Compare mipyre with any Python entry · Compare mipyre with any entry, in any language · Every Python entry, ranked

Results updated · How the benchmark is run · The machine · Add or fix an entry