Asynchronous Server Gateway Interface Explained

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.

Example

An ASGI-compatible "Hello, World!" application written in Python:async def application(scope, receive, send): event = await receive ... await send

Where:

Web Server Gateway Interface (WSGI) compatibility

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.

See also

External links

Notes and References

  1. Web site: Version History.
  2. Web site: Copyright . . 2022-09-14.