Asynchronous Server Gateway Interface
The Asynchronous Server Gateway Interface (ASGI) is a calling convention for web servers to forward requests to asynchronous-capable Python frameworks, and applications. It is built as a successor to the Web Server Gateway Interface (WSGI). Where WSGI provided a standard for synchronous Python application, ASGI provides one for both asynchronous and synchronous applications, with a WSGI backwards-compatibility implementation and multiple servers and application frameworks. ExampleAn ASGI-compatible "Hello, World!" application written in Python: async def application(scope, receive, send):
event = await receive()
...
await send({"type": "websocket.send", ...})
Where:
Web Server Gateway Interface (WSGI) compatibilityASGI is also designed to be a superset of WSGI, and there's a defined way of translating between the two, allowing WSGI applications to be run inside ASGI servers through a translation wrapper (provided in the asgiref library). A threadpool can be used to run the synchronous WSGI applications away from the async event loop. See also
References
External links |