Asynchronous Server Gateway Interface | |
ASGI Specification | |
Label1: | Version |
Data1: | 3.0 |
Label2: | Developer |
Data2: | ASGI Team |
Label3: | Release date |
Data3: | 2019-03-04[1] |
Label4: | Website |
Label5: | License |
Data5: | public domain[2] |
Label6: | Status |
Data6: | Draft |
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.
An ASGI-compatible "Hello, World!" application written in Python:
Where:
ASGI 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.