aioscgi is a container implementing the Asynchronous Server Gateway Interface (ASGI) to serve up asynchronous Web applications via the Simple Common Gateway Interface protocol.
SCGI is a protocol used for communication between HTTP servers and Web applications. Compared to CGI, SCGI is more efficient because it does not fork and execute a separate instance of the application for every request; instead, the application is launched ahead of time and receives multiple requests (either sequentially or concurrently) via socket connections. Compared to FastCGI, SCGI is a much simpler protocol as it uses a separate socket connection for each request, rather than including framing within a single connection to multiplex requests (a feature which is rarely used in FastCGI anyway due to the lack of per-request flow control).
See the Wikipedia and Python SCGI pages for more information.
aioscgi’s releases are published on PyPI for installation through pip. You can
run pip install aioscgi
.
For development, the source is available at GitLab and GitHub.
aioscgi installs an aioscgi
executable. If your ASGI application callable
is named myapp
and is in a file called mypackage/mymodule.py
, you might
run aioscgi --unix-socket /path/to/socket mypackage.mymodule:myapp
. For
full details on available options, run aioscgi --help
.