Skip to content

aiohttp 0.14 release

Compare
Choose a tag to compare
@asvetlov asvetlov released this 15 Jan 21:19
· 10353 commits to master since this 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, not tuple.
  • Backward imcompatible change: now there are two mutable multidicts
    (MultiDict, CIMultiDict) and two immutable multidict proxies
    (MultiDictProxy and CIMultiDictProxy). 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 to aiohttp.DisconnectedError and don't
    eat ConnectionError 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).