It's a peach


Although ASGI is fairly new, there are already a number of excellent web frameworks available. Why choose bareASGI over the others?

The focus is on web micro services. All this framework does is provide a request handler for a route, nothing else, and it does it in 1,209 lines of pure python code.

An example of the light touch of the framework is in the way it presents requests. There is no attempt to pre process the request. For example many frameworks help the user by packing headers into a dictionary, but if your handler doesn't use the headers, the framework has done useless work.

A key consequence of the design is the support for asynchronous streaming of both input and output. This was something that was clumsy to achieve before the async-await functionality. This is an aspect of web servers that has not been widely explored. There is an example of this in the streaming GraphQL subscriber that has no need of a WebSocket.

Extension packages are available to provide the functionality that is built in to other frameworks, e.g.: static file serving, CORS, jinja2 templating, compression, GraphQL, etc. These are all optional.