Embora WSGI ainda seja muito utilizado, o ASGI é o que vem sendo mais utilizado em novos projetos.
"ASGI é um sucessor espiritual do WSGI, o padrão Python de longa data para compatibilidade entre servidores web, estruturas e aplicativos.
O WSGI conseguiu permitir muito mais liberdade e inovação no espaço web Python, e o objetivo do ASGI é continuar isso na terra do Python assíncrono."
https://asgi.readthedocs.io/en/latest/
O Gunicorn reina como servidor WSGI. Já para ASGI vejo mais usando Uvicorn (que tem ótimo desempenho), tendo outras opções como Hypercorn, Daphne, Granian... Sendo que o Granian pode ser utilizado como servidor WSGI ou ASGI e tem desempenho espetacular pois a base dele é feita em Rust, com isso temos aplicações em Python processando muito bem milhares de requisições por segundo.
Pode usar Granian para rodar Flask, Django, FastAPI, LiteStar, etc.
8
1
Obrigado pelo comentário, agregou bastante conteúdo ao post. Eu já tinha ouvido falar do Uvicorn, mas não sabia do que se tratava. Vou estudar o ASGI agora também.
1
Vou deixar aqui a dica de como substituir o Gunicorn / Uvicorn / Hypercorn / Daphne pelo Granian. Basta substituir:
De:
gunicorn projeto.wsgi:application --bind :8000
O mesmo vale para uvicorn, hypercorn, daphne...
Para:
WSGI
granian --interface wsgi projeto.wsgi:application --port 8000
ASGI
granian --interface asgi projeto.asgi:application --port 8000
É assim que uso para rodar projetos de web apps Python. O Granian tem outros parâmetros para customizar podendo escolher o número de processos, threads, etc. Tem os detalhes na página do projeto.