aiohttp 0.14 release
0.14 is the great release.
We have finished a hard work to stabilize aiohttp.web
now.
Almost any new wish appeared in our mind may be implemented with the current code by third-party libraries: CORS, sessions, authorization, rendering and so on without the need for making changes in aiohttp
itself.
That's a very strong sign on aiohttp.web
design: the library is good and it is as tiny as possible.
0.14.0 (15/01/2014)
- HttpMessage._add_default_headers does not overwrite existing headers #216
- Expose multidict classes at package level
- add
aiohttp.web.WebSocketResponse
- According to RFC 6455 websocket subprotocol preference order is
provided by client, not by server - websocket's ping and pong accept optional message parameter
- multidict views do not accept
getall
parameter anymore, it
returns the full body anyway. - multidicts have optional Cython optimization, cythonized version of multidicts is
about 5 times faster than pure Python. - multidict.getall() returns
list
, nottuple
. - Backward imcompatible change: now there are two mutable multidicts
(MultiDict
,CIMultiDict
) and two immutable multidict proxies
(MultiDictProxy
andCIMultiDictProxy
). Previous edition of
multidicts was not a part of public API BTW. - Router refactoring to push Not Allowed and Not Found in middleware processing
- Convert
ConnectionError
toaiohttp.DisconnectedError
and don't
eatConnectionError
exceptions from web handlers. - Remove hop headers from Response class, wsgi response still uses hop headers.
- Allow to send raw chunked encoded response.
- Allow to encode output bytes stream into chunked encoding.
- Allow to compress output bytes stream with
deflate
encoding. - Server has 75 seconds keepalive timeout now, was non-keepalive by default.
- Application doesn't accept
**kwargs
anymore (#243). - Request is inherited from dict now for making per-request storage to
middlewares (#242).