Skip to content

Releases: aio-libs/aiohttp

aiohttp 0.22.1 bugfix release

16 Jul 11:34

Choose a tag to compare

The release fixes a very annoying regression: client API was broken when code accepts cookie with expiration date larger than 24 days.

Update is highly recommended.

aiohttp 0.22.0 release

15 Jul 08:54

Choose a tag to compare

After long pause we proud to present new aiohttp major release.

The main changes:

  • Fixed security issue with leaking cookies in client session: #799
  • Added aiodns support: #819
  • Added public api for testing: #900 #902 #914
  • Added narrative tutorial
  • Dropped features deprecated in 0.14 and 0.15 releases (more than year ago).
  • multidict is spitted into separate library
  • aiohttp now is published as linux wheels as well as old good gzipped tarball.

Full list of changes:

  • Fix bug in serving static directory #803
  • Fix command line arg parsing #797
  • Fix a documentation chapter about cookie usage #790
  • Handle empty body with gzipped encoding #758
  • Support 451 Unavailable For Legal Reasons http status #697
  • Fix Cookie share example and few small typos in docs #817
  • UrlDispatcher.add_route with partial coroutine handler #814
  • Optional support for aiodns #728
  • Add ServiceRestart and TryAgainLater websocket close codes #828
  • Fix prompt message for web.run_app #832
  • Allow to pass None as a timeout value to disable timeout logic #834
  • Fix leak of connection slot during connection erro #835
  • Gunicorn worker with uvloop support aiohttp.worker.GunicornUVLoopWebWorker #878
  • Don't send body in response to HEAD request #838
  • Skip the preamble in MultipartReader #881
  • Implement BasicAuth decode classmethod. #744
  • Don't crash logger when transport is None #889
  • Use a create_future compatibility wrapper instead of creating
    Futures directly #896
  • Add test utilities to aiohttp #902
  • Improve Request.repr #875
  • Skip DNS resolving if provided host is already an ip address #874
  • Add headers to ClientSession.ws_connect #785
  • Document that server can send pre-compressed data #906
  • Don't add Content-Encoding and Transfer-Encoding if no body #891
  • Add json() convenience methods to websocket message objects #897
  • Add client_resp.raise_for_status() #908
  • Implement cookie filter #799
  • Include an example of middleware to handle error pages #909
  • Fix error handling in StaticFileMixin #856
  • Add mocked request helper #900
  • Fix empty ALLOW Response header for cls based View #929
  • Respect CONNECT method to implement a proxy server #847
  • Add pytest_plugin #914
  • Add tutorial
  • Add backlog option to support more than 128 (default value in
    "create_server" function) concurrent connections #892
  • Allow configuration of header size limits #912
  • Separate sending file logic from StaticRoute dispatcher #901
  • Drop deprecated share_cookies connector option (BACKWARD INCOMPATIBLE)
  • Drop deprecated support for tuple as auth paramter.
    Use aiohttp.BasicAuth instead (BACKWARD INCOMPATIBLE)
  • Remove deprecated request.payload property, use content instead.
    (BACKWARD INCOMPATIBLE)
  • Drop all mentions about api changes in documentaion for versions
    older than 0.16
  • Allow to override default cookie jar #963
  • Add manylinux wheel builds
  • Dup a socket for sendfile usage #964

Thanks to all for contributions!

aiohttp 0.21.6 release

05 May 12:10

Choose a tag to compare

Fixed link to documentation: now http://aiohttp.readthedocs.io/en/v0.21.6/ works

Changes

  • Drop initial query parameters on redirects #853

0.21.4 aiohttp release

12 Mar 17:24

Choose a tag to compare

Minor release, has a couple of bug fixes

CHANGES

  • Fix ResourceAdapter: dont add method to allowed if resource is not
    match #826
  • Fix Resouce: append found method to returned allowed methods

aiohttp 0.21.2 release

16 Feb 15:00

Choose a tag to compare

Bugfix release for fixing subtle regression

Changes

  • Fix a regression: support for handling ~/path in static file routes was
    broken #782

aiohttp 0.21.1 release

16 Feb 14:59

Choose a tag to compare

Bugfix release to restore aiohttp_debugtoolar functionality.

Changes

  • Make new resources classes public #767
  • Add router.resources() view
  • Fix cmd-line parameter names in doc

aiohttp 0.21.0 release

04 Feb 12:51

Choose a tag to compare

The release has many changes, most interesting are:

  • Web router is deeply refactored
  • Added utility function for application running
  • Added command line command for running a web server
  • Added raw http headers (not converted into utf-8)
  • Client CORK/NODELAY optimization
  • Full-functional demo added

Full list of changes:

  • Introduce on_shutdown signal #722
  • Implement raw input headers #726
  • Implement web.run_app utility function #734
  • Introduce on_cleanup signal
  • Deprecate Application.finish() / Application.register_on_finish() in favor of
    on_cleanup.
  • Get rid of bare aiohttp.request(), aiohttp.get() and family in docs #729
  • Deprecate bare aiohttp.request(), aiohttp.get() and family #729
  • Refactor keep-alive support #737:
    • Enable keepalive for HTTP 1.0 by default
    • Disable it for HTTP 0.9 (who cares about 0.9, BTW?)
    • For keepalived connections
      • Send Connection: keep-alive for HTTP 1.0 only
      • don't send Connection header for HTTP 1.1
    • For non-keepalived connections
      • Send Connection: close for HTTP 1.1 only
      • don't send Connection header for HTTP 1.0
  • Add version parameter to ClientSession constructor,
    deprecate it for session.request() and family #736
  • Enable access log by default #735
  • Deprecate app.router.register_route() (the method was not documented
    intentionally BTW).
  • Deprecate app.router.named_routes() in favor of app.router.named_resources()
  • route.add_static accepts pathlib.Path now #743
  • Add command line support: $ python -m aiohttp.web package.main #740
  • FAQ section was added to docs. Enjoy and fill free to contribute new topics
  • Add async context manager support to ClientSession
  • Document ClientResponse's host, method, url properties
  • Use CORK/NODELAY in client API #748
  • ClientSession.close and Connector.close are coroutines now
  • Close client connection on exception in ClientResponse.release()
  • Allow to read multipart parts without content-length specified #750
  • Add support for unix domain sockets to gunicorn worker #470
  • Add test for default Expect handler #601
  • Add the first demo project
  • Rename loader keyword argument in web.Request.json method. #646
  • Add local socket binding for TCPConnector #678

aiohttp 0.20.2 release

07 Jan 21:48

Choose a tag to compare

aiohttp 0.20.2 bugfix

The main reason for making the release is fixing memory leak #723 -- very old, small but annoying problem.

Couple minor fixed was published also.

Changes

  • Enable use of await for a class based view #717
  • Check address family to fill wsgi env properly #718
  • Fix memory leak in headers processing (thanks to Marco Paolini) #723

aiohttp 0.20.1 release

30 Dec 15:49

Choose a tag to compare

Bugfix release, mostly for fixing benoitc/gunicorn#1055

Full list of changes:

  • Raise RuntimeError is Timeout context manager was used outside of
    task context.
  • Add number of bytes to stream.read_nowait #700
  • Use X-FORWARDED-PROTO for wsgi.url_scheme when available

aiohttp 0.20.0 release

28 Dec 05:40

Choose a tag to compare

The release has many optimizations as well as other improvements and bug fixes.

The most notable ones:

  • Use TCP_CORK/TCP_NOPUSH and TCP_NODELAY for disabling Nagle algorithm
  • Reduce amount of syscalls for chunked encoding transfer
  • Improve performance of websocket mask applying
  • Round server timeouts to seconds for grouping pending calls
  • Implement Class Based Views
  • Fix broken support for https proxies with authentication

Full list of changes:

  • Extend list of web exceptions, add HTTPMisdirectedRequest,
    HTTPUpgradeRequired, HTTPPreconditionRequired, HTTPTooManyRequests,
    HTTPRequestHeaderFieldsTooLarge, HTTPVariantAlsoNegotiates,
    HTTPNotExtended, HTTPNetworkAuthenticationRequired status codes #644
  • Do not remove AUTHORIZATION header by WSGI handler #649
  • Fix broken support for https proxies with authentication #617
  • Get REMOTE_* and SEVER_* http vars from headers when listening on
    unix socket #654
  • Add HTTP 308 support #663
  • Add Tf format (time to serve request in seconds, %06f format) to
    access log #669
  • Remove one and a half years long deprecated
    ClientResponse.read_and_close() method
  • Optimize chunked encoding: use a single syscall instead of 3 calls
    on sending chunked encoded data
  • Use TCP_CORK and TCP_NODELAY to optimize network latency and
    throughput #680
  • Websocket XOR performance improved #687
  • Avoid sending cookie attributes in Cookie header #613
  • Round server timeouts to second for grouping pending call. That
    leads to less amount of poller syscalls e.g epoll.poll(). #702
  • Close connection on websocket handshake error #703
  • Implement class based views #684
  • Add headers parameter to ws_connect() #709
  • Drop unused function parse_remote_addr() #708
  • Close session on exception #707
  • Store http code and headers in WSServerHandshakeError #706
  • Make some low-level message properties readonly #710