Serve WSGI applications#
Hypercorn directly serves WSGI applications:
$ hypercorn module:wsgi_app
WSGI Middleware#
If a WSGI application is being combined with ASGI middleware it is
best to use either AsyncioWSGIMiddleware
or TrioWSGIMiddleware
middleware. To do so simply wrap the WSGI app with the appropriate
middleware for the hypercorn worker,
from hypercorn.middleware import AsyncioWSGIMiddleware, TrioWSGIMiddleware
asyncio_app = AsyncioWSGIMiddleware(wsgi_app)
trio_app = TrioWSGIMiddleware(wsgi_app)
which can then be passed to other middleware served by hypercorn,
Limiting the request body size#
As the request body is stored in memory before being processed it is
important to limit the max size. This is configured by the
wsgi_max_body_size
configuration attribute.
When using middleware the AsyncioWSGIMiddleware
and
TrioWSGIMiddleware
have a default max size that can be configured,
app = AsyncioWSGIMiddleware(wsgi_app, max_body_size=20) # Bytes