Skip to content

Releases: aio-libs/aiohttp

aiohttp 1.1.1

04 Nov 08:56

Choose a tag to compare

Changes

  • Fix documentation generation #1120

aiohttp 1.1.0 releae

03 Nov 20:52

Choose a tag to compare

Main news are:

  • sub-application support
  • using YARL library for working with URLs on both client and server side
  • performance improvements

Full list of changes:

  • Drop deprecated WSClientDisconnectedError (BACKWARD INCOMPATIBLE)

  • Use yarl.URL in client API. The change is 99% backward compatible
    but ClientResponse.url is an yarl.URL instance now. #1217

  • Close idle keep-alive connections on shutdown #1222

  • Modify regex in AccessLogger to accept underscore and numbers #1225

  • Use yarl.URL in web server API. web.Request.rel_url and
    web.Request.url are added. URLs and templates are percent-encoded
    now. #1224

  • Accept yarl.URL by server redirections #1278

  • Return yarl.URL by .make_url() testing utility #1279

  • Properly format IPv6 addresses by aiohttp.web.run_app #1139

  • Use yarl.URL by server API #1288

    • Introduce resource.url_for(), deprecate resource.url().
    • Implement StaticResource.
    • Inherit SystemRoute from AbstractRoute
    • Drop old-style routes: Route, PlainRoute, DynamicRoute,
      StaticRoute, ResourceAdapter.
  • Revert resp.url back to str, introduce resp.url_obj #1292

  • Raise ValueError if BasicAuth login has a ":" character #1307

  • Fix bug when ClientRequest send payload file with opened as
    open('filename', 'r+b') #1306

  • Enhancement to AccessLogger (pass extra dict) #1303

  • Show more verbose message on import errors #1319

  • Added save and load functionality for CookieJar #1219

  • Added option on StaticRoute to follow symlinks #1299

  • Force encoding of application/json content type to utf-8 #1339

  • Fix invalid invocations of errors.LineTooLong #1335

  • Websockets: Stop async for iteration when connection is closed #1144

  • Ensure TestClient HTTP methods return a context manager #1318

  • Raise ClientDisconnectedError to FlowControlStreamReader read function
    if ClientSession object is closed by client when reading data. #1323

  • Document deployment without Gunicorn #1120

  • Add deprecation warning for MD5 and SHA1 digests when used for fingerprint
    of site certs in TCPConnector. #1186

  • Implement sub-applications #1301

  • Don't inherit web.Request from dict but implement
    MutableMapping protocol.

  • Implement frozen signals

  • Don't inherit web.Application from dict but implement
    MutableMapping protocol.

  • Support freezing for web applications

  • Accept access_log parameter in web.run_app, use None to disable logging

  • Don't flap tcp_cork and tcp_nodelay in regular request handling.
    tcp_nodelay is still enabled by default.

  • Improve performance of web server by removing premature computing of
    Content-Type if the value was set by web.Response constructor.

    While the patch boosts speed of trivial web.Response(text='OK', content_type='text/plain) very well please don't expect significant
    boost of your application -- a couple DB requests and business logic
    is still the main bottleneck.

  • Boost performance by adding a custom time service #1350

  • Extend ClientResponse with content_type and charset
    properties like in web.Request. #1349

  • Disable aiodns by default #559

  • Don't flap tcp_cork in client code, use TCP_NODELAY mode by default.

  • Implement web.Request.clone() #1361

aiohttp 1.0.5 release

11 Oct 17:40

Choose a tag to compare

CHANGES

  • Fix StreamReader._read_nowait to return all available
    data up to the requested amount. It boosts a performance in edge cases #1297

aiohttp 1.0.4 bugfix release

04 Oct 16:10

Choose a tag to compare

Changes

  • Fix FlowControlStreamReader.read_nowait so that it checks
    whether the transport is paused #1206

aiohttp 1.0.2 bugfix release

22 Sep 09:22

Choose a tag to compare

Changes

  • Make CookieJar compatible with 32-bit systems #1188
  • Add missing WSMsgType to web_ws.__all__, see #1200
  • Fix CookieJar ctor when called with loop=None #1203
  • Fix broken upper-casing in wsgi support #1197

aiohttp 1.0.1 bugfix release

16 Sep 20:00

Choose a tag to compare

CHANGES

  • Restore aiohttp.web.MsgType alias for aiohttp.WSMsgType for sake
    of backward compatibility #1178
  • Tune alabaster schema.
  • Use text/html content type for displaying index pages by static
    file handler.
  • Fix AssertionError in static file handling #1177
  • Fix access log formats %O and %b for static file handling

aiohttp 1.0 release

16 Sep 12:50

Choose a tag to compare

The first officially stable release.
We are working hard on aiohttp stability.
This release is tagged as 1.0 -- the library is mature enough for this.
Backward compatibility with previous releases is kept as usual.
Deprecation period is 1.5 years.

The list of changes is pretty long, but the most significant ones are:

Common

  • HTTP headers are title-cased (Content-Length) now, they was upper-cased (CONTENT-LENGTH) in previous releases.
  • aiohttp.Timeout is alias for async_timeout.timeout

Client

  • Client cookies support was rewritten in backward incompatible manner to split cookies with the same name but belonging to different domains #1173
  • ProxyConnector is deprecated, regular methods like ClientSession.get() accepts proxy and proxy_auth parameters explicitly #998
  • Default settings for aiohttp.TCPConnector uses asynchronous DNS requests and cache for given DNS resolutions #1152

Server

  • Router has handy methods for route adding like app.router.add_get(), app.router.add_post() etc. #986
  • Request has .multipart() methods for easy access to multipart encoded data #1067

Testing

  • Significant improvements in aiohttp testing suite: new parameters for tuning test server and client are added

Full list of changes

  • Change default size for client session's connection pool from
    unlimited to 20 #977
  • Add IE support for cookie deletion. #994
  • Remove deprecated WebSocketResponse.wait_closed method (BACKWARD
    INCOMPATIBLE)
  • Remove deprecated force parameter for ClientResponse.close
    method (BACKWARD INCOMPATIBLE)
  • Avoid using of mutable CIMultiDict kw param in make_mocked_request
    #997
  • Make WebSocketResponse.close a little bit faster by avoiding new
    task creating just for timeout measurement
  • Add proxy and proxy_auth params to client.get() and family,
    deprecate ProxyConnector #998
  • Add support for websocket send_json and receive_json, synchronize
    server and client API for websockets #984
  • Implement router shourtcuts for most useful HTTP methods, use
    app.router.add_get(), app.router.add_post() etc. instead of
    app.router.add_route() #986
  • Support SSL connections for gunicorn worker #1003
  • Move obsolete examples to legacy folder
  • Switch to multidict 2.0 and title-cased strings #1015
  • {FOO}e logger format is case-sensitive now
  • Fix logger report for unix socket 8e8469b
  • Rename aiohttp.websocket to aiohttp._ws_impl
  • Rename aiohttp.MsgType tp aiohttp.WSMsgType
  • Introduce aiohttp.WSMessage officially
  • Rename Message -> WSMessage
  • Remove deprecated decode param from resp.read(decode=True)
  • Use 5min default client timeout #1028
  • Relax HTTP method validation in UrlDispatcher #1037
  • Pin minimal supported asyncio version to 3.4.2+ (loop.is_close()
    should be present)
  • Remove aiohttp.websocket module (BACKWARD IMCOMPATIBLE)
    Please use high-level client and server approaches
  • Link header for 451 status code is mandatory
  • Fix test_client fixture to allow multiple clients per test #1072
  • make_mocked_request now accepts dict as headers #1073
  • Add Python 3.5.2/3.6+ compatibility patch for async generator
    protocol change #1082
  • Improvement test_client can accept instance object #1083
  • Simplify ServerHttpProtocol implementation #1060
  • Add a flag for optional showing directory index for static file
    handling #921
  • Define web.Application.on_startup() signal handler #1103
  • Drop ChunkedParser and LinesParser #1111
  • Call Application.startup in GunicornWebWorker #1105
  • Fix client handling hostnames with 63 bytes when a port is given in
    the url #1044
  • Implement proxy support for ClientSession.ws_connect #1025
  • Return named tuple from WebSocketResponse.can_prepare #1016
  • Fix access_log_format in GunicornWebWorker #1117
  • Setup Content-Type to application/octet-stream by default #1124
  • Deprecate debug parameter from app.make_handler(), use
    Application(debug=True) instead #1121
  • Remove fragment string in request path #846
  • Use aiodns.DNSResolver.gethostbyname() if available #1136
  • Fix static file sending on uvloop when sendfile is available #1093
  • Make prettier urls if query is empty dict #1143
  • Fix redirects for HEAD requests #1147
  • Default value for StreamReader.read_nowait is -1 from now #1150
  • aiohttp.StreamReader is not inherited from asyncio.StreamReader from now
    (BACKWARD INCOMPATIBLE) #1150
  • Streams documentation added #1150
  • Add multipart coroutine method for web Request object #1067
  • Publish ClientSession.loop property #1149
  • Fix static file with spaces #1140
  • Fix piling up asyncio loop by cookie expiration callbacks #1061
  • Drop Timeout class for sake of async_timeout external library.
    aiohttp.Timeout is an alias for async_timeout.timeout
  • use_dns_cache parameter of aiohttp.TCPConnector is True by
    default (BACKWARD INCOMPATIBLE) #1152
  • aiohttp.TCPConnector uses asynchronous DNS resolver if available by
    default (BACKWARD INCOMPATIBLE) #1152
  • Conform to RFC3986 - do not include url fragments in client requests #1174
  • Drop ClientSession.cookies (BACKWARD INCOMPATIBLE) #1173
  • Refactor AbstractCookieJar public API (BACKWARD INCOMPATIBLE) #1173
  • Fix clashing cookies with have the same name but belong to different
    domains (BACKWARD INCOMPATIBLE) #1125
  • Support binary Content-Transfer-Encoding #1169

aiohttp 0.22.5

02 Aug 18:01

Choose a tag to compare

Pin miltidict version to >=1.2.2,<2.0.0

It fixes a bug with broken multidict dependecy

Technical release, required for pinning multidict<2.0

28 Jul 11:23

Choose a tag to compare

aiohttp 0.22.3 release

26 Jul 19:56

Choose a tag to compare

Changes

  • Do not filter cookies if unsafe flag provided #1005

Thanks to Misha Behersky for finding and fixing!