Web Frameworks Benchmark


python web framework benchmarks

Benchmark results for 37 python web frameworks, measured with zrk at concurrency 64, 256, 512. Fastest at concurrency 64: oxapy with 158 749 requests per second.

python frameworks at concurrency 64, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 oxapy 0.11 158 749 0.38 ms 0.84 ms 0
2 fastpysgi-wsgi 0.6 153 823 0.36 ms 0.66 ms 0
3 asgineer 0.9 94 940 0.63 ms 1.77 ms 0
4 lihil 0.2 88 479 0.62 ms 1.57 ms 0
5 sanic 25.12 86 796 0.63 ms 2.05 ms 0
6 blacksheep 2.6 81 792 0.59 ms 2.59 ms 0
7 mq-bridge-py 0.2 80 833 0.79 ms 1.18 ms 0
8 baize-asgi 0.20 79 094 0.71 ms 2.20 ms 0
9 emmett 2.7 77 656 0.73 ms 2.39 ms 0
10 panther 5.5 76 924 0.69 ms 2.77 ms 0
11 starlette 1.6 76 343 0.75 ms 2.04 ms 0
12 veloce 0.17 73 936 0.76 ms 2.75 ms 0
13 index.py 0.21 66 415 0.84 ms 3.04 ms 0
14 heaven 1.4 61 056 0.89 ms 3.23 ms 0
15 litestar 2.24 50 599 1.06 ms 3.76 ms 0
16 micropie 0.32 48 950 1.20 ms 4.52 ms 0
17 fastapi 0.141 42 276 1.24 ms 4.87 ms 0
18 robyn 0.88 36 868 0.84 ms 9.01 ms 0
19 responder 9.2 34 683 1.47 ms 7.84 ms 0
20 guillotina 7.1 24 980 2.05 ms 8.81 ms 0
21 tornado 6.4 23 324 2.56 ms 5.69 ms 0
22 quart 0.22 21 170 2.73 ms 8.71 ms 0
23 aiohttp 3.14 19 559 3.26 ms 3.73 ms 0
24 falcon 4.2 14 942 3.06 ms 9.51 ms 0
25 baize-wsgi 0.20 14 507 3.18 ms 10.15 ms 0
26 tonberry 0.2 14 159 3.27 ms 16.73 ms 0
27 pyramid 2.1 14 157 3.20 ms 11.16 ms 0
28 molten 1 12 838 3.31 ms 17.48 ms 0
29 clastic 26 9 862 4.36 ms 30.12 ms 0
30 flask 3.1 7 583 11.22 ms 36.37 ms 0
31 klein 24.8 4 530 14.12 ms 15.74 ms 0
32 bottle 0.13 2 983 8.30 ms 32.27 ms 0
33 nameko 2.14 2 813 22.30 ms 34.19 ms 0
34 django-ninja 1.6 2 274 25.23 ms 70.34 ms 0
35 masonite 5.4 1 778 31.19 ms 148.21 ms 0
36 django 6.1 1 475 31.29 ms 149.02 ms 0
37 cherrypy 18.10 1 159 39.71 ms 99.55 ms 0
python frameworks at concurrency 256, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 oxapy 0.11 136 557 1.85 ms 3.00 ms 0
2 fastpysgi-wsgi 0.6 135 969 1.00 ms 2.72 ms 0
3 asgineer 0.9 92 104 2.66 ms 4.05 ms 0
4 lihil 0.2 87 670 2.90 ms 4.52 ms 0
5 sanic 25.12 85 867 3.04 ms 4.95 ms 0
6 blacksheep 2.6 85 693 3.01 ms 4.98 ms 0
7 baize-asgi 0.20 82 830 3.04 ms 5.19 ms 0
8 panther 5.5 82 495 3.13 ms 5.50 ms 0
9 starlette 1.6 81 307 3.21 ms 5.29 ms 0
10 veloce 0.17 78 852 3.25 ms 6.08 ms 0
11 mq-bridge-py 0.2 78 307 3.25 ms 4.18 ms 0
12 emmett 2.7 74 974 3.13 ms 4.02 ms 0
13 index.py 0.21 74 681 3.43 ms 6.05 ms 0
14 heaven 1.4 69 705 3.47 ms 7.82 ms 0
15 micropie 0.32 66 394 3.62 ms 10.51 ms 0
16 litestar 2.24 60 943 3.92 ms 10.15 ms 0
17 fastapi 0.141 49 922 4.54 ms 17.31 ms 0
18 robyn 0.88 44 906 1.66 ms 44.28 ms 0
19 responder 9.2 41 152 5.32 ms 21.75 ms 0
20 guillotina 7.1 27 751 7.79 ms 28.74 ms 0
21 quart 0.22 25 335 8.74 ms 32.35 ms 0
22 tornado 6.4 24 552 9.79 ms 39.62 ms 0
23 aiohttp 3.14 17 657 14.46 ms 16.13 ms 0
24 tonberry 0.2 15 434 14.36 ms 51.21 ms 0
25 falcon 4.2 14 769 8.38 ms 135.54 ms 0
26 baize-wsgi 0.20 14 283 9.58 ms 122.94 ms 0
27 pyramid 2.1 13 952 5.76 ms 166.54 ms 0
28 molten 1 12 503 6.32 ms 166.68 ms 0
29 clastic 26 9 426 9.29 ms 326.95 ms 0
30 flask 3.1 8 953 9.31 ms 288.09 ms 0
31 django 6.1 4 525 38.79 ms 343.32 ms 0
32 klein 24.8 4 249 59.17 ms 76.87 ms 0
33 bottle 0.13 3 098 7.48 ms 240.94 ms 0
34 cherrypy 18.10 3 028 57.12 ms 375.74 ms 0
35 nameko 2.14 2 765 92.43 ms 118.39 ms 0
36 masonite 5.4 2 719 61.11 ms 539.82 ms 0
37 django-ninja 1.6 2 374 89.61 ms 305.34 ms 0
python frameworks at concurrency 512, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 fastpysgi-wsgi 0.6 132 723 1.11 ms 2.76 ms 0
2 oxapy 0.11 130 099 3.55 ms 4.73 ms 0
3 asgineer 0.9 92 406 3.10 ms 4.86 ms 0
4 lihil 0.2 87 096 3.47 ms 5.29 ms 0
5 blacksheep 2.6 85 591 3.83 ms 5.42 ms 0
6 sanic 25.12 85 311 3.88 ms 5.96 ms 0
7 baize-asgi 0.20 82 423 4.34 ms 6.43 ms 0
8 starlette 1.6 81 848 4.54 ms 6.59 ms 0
9 panther 5.5 81 366 4.01 ms 6.86 ms 0
10 veloce 0.17 79 888 4.70 ms 7.16 ms 0
11 mq-bridge-py 0.2 77 804 6.53 ms 8.07 ms 0
12 index.py 0.21 74 974 4.77 ms 8.03 ms 0
13 emmett 2.7 73 403 3.10 ms 4.00 ms 0
14 heaven 1.4 70 949 5.53 ms 10.90 ms 0
15 micropie 0.32 67 650 6.47 ms 14.21 ms 0
16 litestar 2.24 62 758 6.94 ms 20.11 ms 0
17 fastapi 0.141 52 028 8.73 ms 38.25 ms 0
18 robyn 0.88 48 008 3.09 ms 76.36 ms 0
19 responder 9.2 42 852 10.41 ms 46.62 ms 0
20 guillotina 7.1 28 785 15.52 ms 53.14 ms 0
21 quart 0.22 26 881 17.05 ms 58.78 ms 0
22 tornado 6.4 24 636 18.15 ms 71.99 ms 0
23 aiohttp 3.14 17 741 28.76 ms 31.79 ms 0
24 tonberry 0.2 15 561 29.99 ms 76.81 ms 0
25 falcon 4.2 14 615 12.56 ms 233.41 ms 0
26 baize-wsgi 0.20 14 174 10.62 ms 213.87 ms 0
27 pyramid 2.1 13 872 11.10 ms 226.07 ms 0
28 molten 1 12 451 7.95 ms 246.89 ms 0
29 clastic 26 11 860 24.29 ms 209.09 ms 0
30 flask 3.1 8 308 49.87 ms 413.91 ms 0
31 klein 24.8 4 445 112.50 ms 135.33 ms 0
32 django 6.1 4 407 175.71 ms 1069.12 ms 0
33 cherrypy 18.10 2 993 189.84 ms 1003.05 ms 0
34 nameko 2.14 2 611 192.53 ms 289.56 ms 0
35 django-ninja 1.6 2 373 204.52 ms 352.90 ms 0
36 bottle 0.13 2 018 32.63 ms 819.80 ms 0
37 masonite 5.4 1 943 297.93 ms 1082.50 ms 0