ASGI是异步服务器网关接口(Asynchronous Server Gateway Interface)的缩写,是Python异步Web框架Django、FastAPI等的新的服务器接口规范。
ASGI的出现是为了解决传统的WSGI协议在异步编程方面的不足,提供异步I/O支持,更好地处理Websocket、长轮询、服务器推送等实时通讯或繁重计算的场景。
ASGI已经得到了越来越多的支持,以下是一些常见的Python异步Web框架和服务器,都支持ASGI协议:
-
Django 3.0及以上版本(官方推荐ASGI)
-
FastAPI
-
Quart
-
Sanic
-
Starlette
-
Aiohttp
-
uvicorn
-
Daphne
-
Hypercorn
此外,还有一些中间件、插件和工具,也提供了ASGI的支持,如asgiref、channels、uvloop等等