Starlette is fastest (except bare asyncio on uvicorn, which doesn't support much http stuff).
Performance benchmark (requests/second)
(12806.84) asyncio + gunicorn + uvicorn worker
(10222.93) starlette + gunicorn + uvicorn worker
(8280.32) aiohttp + gunicorn + uvloop worker
(8146.75) sanic + gunicorn + uvicorn worker
(7941.25) sanic + gunicorn + sanic worker
(7344.14) fastapi + ugunicorn + uvicorn worker
(6522.47) sanic
(3252.05) muffin
(1018.73) quart + hypercron
OLD:
On backend site we could use aiohttp on gunicorn with uvloopworkers.
uvloop is the fastest async loop for Python.
Discarded alternatives (all are similarily fast)
Sanic
No real issues here. It is also based on uvloop.
I just don't like flask and Sanic is basically an async version of flask. I could go with sanic as well.
Uvicorn
It's more like a server worker than actual framework. Works very fast with asyncio, but doesn't work with aiohttp, and web frameworks built on top of uvicorn are slower than aiohttp on uvloop.
Starlette is fastest (except bare asyncio on uvicorn, which doesn't support much http stuff).
Performance benchmark (requests/second)
OLD: On backend site we could use aiohttp on gunicorn with uvloop workers. uvloop is the fastest async loop for Python.
Discarded alternatives (all are similarily fast)
Sanic
No real issues here. It is also based on uvloop. I just don't like flask and Sanic is basically an async version of flask. I could go with sanic as well.
Uvicorn
It's more like a server worker than actual framework. Works very fast with asyncio, but doesn't work with aiohttp, and web frameworks built on top of uvicorn are slower than aiohttp on uvloop.