Explore by language

python web framework benchmarks

Benchmark results for 46 python web frameworks, measured with zrk at concurrency 64, 256, 512. Fastest at concurrency 64: peregrine-wsgi with 191 025 requests per second.

Compare throughput and latency together. These measurements describe a specific workload and test environment; performance in your application may differ.

Concurrency 64

python frameworks at concurrency 64, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 peregrine-wsgi 1.1 191 025 0.30 ms 0.85 ms 0
2 weft-wsgi 0.1 153 346 0.41 ms 0.52 ms 0
3 fastpysgi-wsgi 0.6 147 137 0.46 ms 0.58 ms 0
4 peregrine-asgi 1.1 118 540 0.55 ms 0.68 ms 0
5 weft-asgi 0.1 118 218 0.53 ms 0.79 ms 0
6 oxapy 0.11 85 921 0.73 ms 1.34 ms 0
7 peregrine-blacksheep 2.6 74 401 0.95 ms 1.14 ms 0
8 emmett 2.7 47 667 1.27 ms 2.98 ms 0
9 asgineer 0.9 43 752 1.46 ms 2.09 ms 0
10 mq-bridge-py 0.2 41 435 1.63 ms 1.86 ms 0
11 lihil 0.2 40 796 1.55 ms 2.19 ms 0
12 blacksheep 2.6 37 653 1.70 ms 2.02 ms 0
13 sanic 25.12 35 793 0.75 ms 9.36 ms 0
14 starlette 1.6 34 625 1.87 ms 2.04 ms 0
15 panther 5.5 34 369 1.84 ms 2.52 ms 0
16 veloce 0.20 33 982 1.93 ms 2.56 ms 0
17 micropie 0.32 33 233 2.11 ms 3.52 ms 0
18 robyn 0.88 32 706 1.92 ms 4.23 ms 0
19 baize-asgi 0.20 32 608 1.93 ms 3.69 ms 0
20 peregrine-fastapi 0.141 28 937 2.34 ms 2.89 ms 0
21 index.py 0.21 28 163 2.27 ms 2.51 ms 0
22 weft-fastapi 0.141 27 889 2.43 ms 4.49 ms 0
23 heaven 2.3 25 234 2.53 ms 3.15 ms 0
24 litestar 2.24 24 306 2.67 ms 3.04 ms 0
25 peregrine-flask 3.1 21 932 2.87 ms 5.75 ms 0
26 aiohttp 3.14 19 746 3.24 ms 3.37 ms 0
27 fastapi 0.141 19 732 3.30 ms 3.66 ms 0
28 peregrine-django 6.1 18 460 3.60 ms 7.57 ms 0
29 responder 9.2 16 822 3.80 ms 4.23 ms 0
30 guillotina 7.1 10 987 5.74 ms 6.44 ms 0
31 quart 0.23 10 698 5.99 ms 7.02 ms 0
32 tornado 6.4 10 058 6.01 ms 17.76 ms 0
33 tonberry 0.2 6 293 9.93 ms 11.76 ms 0
34 klein 24.8 4 631 13.72 ms 17.47 ms 0
35 bottle 0.13 4 533 3.44 ms 14.36 ms 0
36 nameko 2.14 2 922 21.48 ms 29.30 ms 0
37 masonite 5.4 1 198 28.30 ms 173.76 ms 0
38 django-ninja 1.7 1 113 57.36 ms 69.09 ms 0
39 molten 1 997 69.91 ms 194.95 ms 0
40 clastic 26 784 67.18 ms 191.03 ms 0
41 pyramid 2.1 741 122.39 ms 198.62 ms 0
42 flask 3.1 738 99.85 ms 190.75 ms 0
43 falcon 4.2 654 64.09 ms 117.45 ms 0
44 cherrypy 18.10 624 89.09 ms 177.14 ms 0
45 baize-wsgi 0.20 615 96.03 ms 208.70 ms 0
46 django 6.1 527 37.30 ms 135.94 ms 0

Concurrency 256

python frameworks at concurrency 256, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 peregrine-wsgi 1.1 176 303 1.44 ms 1.60 ms 0
2 weft-wsgi 0.1 143 334 1.73 ms 2.24 ms 0
3 fastpysgi-wsgi 0.6 138 117 1.81 ms 2.14 ms 0
4 peregrine-asgi 1.1 120 339 2.16 ms 2.52 ms 0
5 weft-asgi 0.1 118 361 1.95 ms 3.12 ms 0
6 oxapy 0.11 115 040 2.19 ms 4.32 ms 0
7 peregrine-blacksheep 2.6 78 983 3.23 ms 3.97 ms 0
8 emmett 2.7 64 903 3.97 ms 6.21 ms 0
9 asgineer 0.9 42 915 6.04 ms 6.28 ms 0
10 mq-bridge-py 0.2 41 340 6.26 ms 7.28 ms 0
11 lihil 0.2 39 844 6.50 ms 6.83 ms 0
12 blacksheep 2.6 37 329 6.88 ms 7.27 ms 0
13 robyn 0.88 37 253 6.71 ms 14.40 ms 0
14 sanic 25.12 36 188 7.32 ms 18.41 ms 0
15 starlette 1.6 34 324 7.48 ms 7.78 ms 0
16 panther 5.5 33 901 7.58 ms 7.94 ms 0
17 micropie 0.32 33 891 7.75 ms 14.01 ms 0
18 veloce 0.20 33 532 7.72 ms 8.03 ms 0
19 baize-asgi 0.20 31 998 7.98 ms 8.46 ms 0
20 peregrine-fastapi 0.141 29 580 8.81 ms 10.41 ms 0
21 weft-fastapi 0.141 28 578 8.47 ms 13.69 ms 0
22 index.py 0.21 28 166 9.09 ms 9.58 ms 0
23 heaven 2.3 25 235 10.16 ms 10.73 ms 0
24 litestar 2.24 24 040 10.71 ms 11.51 ms 0
25 peregrine-flask 3.1 21 555 12.02 ms 13.57 ms 0
26 fastapi 0.141 19 345 13.43 ms 14.22 ms 0
27 aiohttp 3.14 18 492 13.84 ms 14.13 ms 0
28 peregrine-django 6.1 18 240 14.00 ms 15.94 ms 0
29 responder 9.2 16 604 15.39 ms 16.42 ms 0
30 guillotina 7.1 10 413 24.12 ms 32.93 ms 0
31 quart 0.23 10 367 24.53 ms 27.57 ms 0
32 tornado 6.4 10 245 20.93 ms 61.22 ms 0
33 tonberry 0.2 6 017 41.72 ms 45.67 ms 0
34 klein 24.8 4 397 57.66 ms 75.81 ms 0
35 bottle 0.13 3 577 3.22 ms 37.33 ms 0
36 nameko 2.14 2 673 91.72 ms 127.50 ms 0
37 molten 1 1 421 63.44 ms 450.98 ms 0
38 clastic 26 1 330 70.85 ms 805.96 ms 0
39 pyramid 2.1 1 258 77.89 ms 807.96 ms 0
40 falcon 4.2 1 210 96.87 ms 750.68 ms 0
41 flask 3.1 1 210 102.53 ms 973.27 ms 0
42 baize-wsgi 0.20 1 198 107.39 ms 897.90 ms 0
43 masonite 5.4 1 136 33.71 ms 767.23 ms 0
44 django 6.1 1 098 166.49 ms 698.55 ms 0
45 cherrypy 18.10 1 087 111.28 ms 1107.41 ms 0
46 django-ninja 1.7 1 074 236.27 ms 287.62 ms 0

Concurrency 512

python frameworks at concurrency 512, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 peregrine-wsgi 1.1 173 486 2.94 ms 3.29 ms 0
2 weft-wsgi 0.1 141 339 3.51 ms 4.12 ms 0
3 fastpysgi-wsgi 0.6 136 435 3.70 ms 4.15 ms 0
4 oxapy 0.11 124 562 4.02 ms 7.72 ms 0
5 peregrine-asgi 1.1 118 404 4.44 ms 5.12 ms 0
6 weft-asgi 0.1 113 377 4.43 ms 6.00 ms 0
7 peregrine-blacksheep 2.6 80 153 6.33 ms 7.31 ms 0
8 emmett 2.7 65 050 7.29 ms 12.59 ms 0
9 asgineer 0.9 41 817 12.30 ms 12.93 ms 0
10 mq-bridge-py 0.2 41 392 12.41 ms 14.32 ms 0
11 lihil 0.2 39 491 13.20 ms 13.81 ms 0
12 robyn 0.88 37 420 12.56 ms 29.63 ms 0
13 blacksheep 2.6 36 942 13.92 ms 14.49 ms 0
14 sanic 25.12 36 078 14.50 ms 28.27 ms 0
15 starlette 1.6 33 942 15.11 ms 15.79 ms 0
16 micropie 0.32 33 820 15.50 ms 24.95 ms 0
17 panther 5.5 33 353 15.40 ms 16.11 ms 0
18 veloce 0.20 33 006 15.64 ms 16.42 ms 0
19 baize-asgi 0.20 31 133 16.40 ms 17.20 ms 0
20 peregrine-fastapi 0.141 29 749 17.27 ms 19.37 ms 0
21 weft-fastapi 0.141 28 483 17.27 ms 29.66 ms 0
22 index.py 0.21 26 717 19.04 ms 20.99 ms 0
23 heaven 2.3 25 195 20.29 ms 21.31 ms 0
24 litestar 2.24 23 779 21.55 ms 22.61 ms 0
25 peregrine-flask 3.1 21 271 23.85 ms 27.93 ms 0
26 fastapi 0.141 19 153 27.19 ms 28.81 ms 0
27 aiohttp 3.14 18 089 28.26 ms 28.88 ms 0
28 peregrine-django 6.1 18 086 28.17 ms 32.26 ms 0
29 responder 9.2 16 271 31.32 ms 33.19 ms 0
30 tornado 6.4 10 146 38.79 ms 122.17 ms 0
31 guillotina 7.1 10 123 49.89 ms 82.14 ms 0
32 quart 0.23 9 810 50.61 ms 83.81 ms 0
33 tonberry 0.2 5 883 83.74 ms 299.48 ms 0
34 klein 24.8 4 519 110.60 ms 136.31 ms 0
35 bottle 0.13 3 724 5.05 ms 432.77 ms 0
36 nameko 2.14 2 688 179.05 ms 264.66 ms 0
37 masonite 5.4 1 172 235.81 ms 1363.46 ms 0
38 django-ninja 1.7 1 026 486.44 ms 929.71 ms 0
39 falcon 4.2 972 2132.27 ms 5157.03 ms 0
40 baize-wsgi 0.20 931 2524.08 ms 5912.06 ms 0
41 pyramid 2.1 928 2359.44 ms 5776.90 ms 0
42 molten 1 880 2088.89 ms 5898.41 ms 0
43 clastic 26 869 2451.61 ms 5798.40 ms 0
44 flask 3.1 859 2376.91 ms 5820.25 ms 0
45 django 6.1 846 1778.63 ms 5659.48 ms 0
46 cherrypy 18.10 747 2138.24 ms 5892.61 ms 0