Skip to content

Releases: aio-libs/aiohttp

aiohttp 2.0.0rc1

15 Mar 17:49

Choose a tag to compare

aiohttp 2.0.0rc1 Pre-release
Pre-release

Major aiohttp2.0 release!

Warning! This is not final release. It contains backward incompatible change,
please check compatibility before installing on production systems.

For this release we completely refactored low-level implementation of http handling.
Finally uvloop gives performance improvement. Overall performance improvement
should be around 70-90% compared to 1.x version.

We took opportunity to refactor long standing api design problem across whole package.
Client exceptions handling has been cleaned up and now much more strait forward. Client payload
management simplified and allows to extends with any custom types. Client collection pool
implementation has been redesigned as well, now there is no need for actively releasing responses,
aiohttp handles connection release automatically.

Another major change, we moved aiohttp development to public organization https://github.com/aio-libs
The aiohttp community would like to thank Keepsafe (https://www.getkeepsafe.com) for it's support in the early days of the project.

Alas we had to make backward incompatible changes. Please check this migration document http://aiohttp.readthedocs.io/en/latest/migration.html

Please report problems or annoyance with with api to https://github.com/aio-libs/aiohttp

You can install and test this release with::

pip install https://github.com/aio-libs/aiohttp/archive/2.0.0rc1.tar.gz#egg=aiohttp-2.0.0rc1

aiohttp 1.3.4

15 Mar 02:42

Choose a tag to compare

CHANGES

  • Revert timeout handling in client request

  • Fix StreamResponse representation after eof

  • Fix file_sender to not fall on bad request (range out of file size)

  • Fix file_sender to correct stream video to Chromes

  • Fix NotImplementedError server exception #1703

  • Clearer error message for URL without a host name. #1691

  • Silence deprecation warning in repr #1690

  • IDN + HTTPS = ssl.CertificateError #1685

aiohttp 1.3.3

20 Feb 02:15

Choose a tag to compare

CHANGES

  • Fixed memory leak in time service #1656

aiohttp 1.3.2

16 Feb 19:12

Choose a tag to compare

CHANGES

  • Awaiting on WebSocketResponse.send_* does not work #1645
  • Fix multiple calls to client ws_connect when using a shared header dict #1643
  • Make CookieJar.filter_cookies() accept plain string parameter. #1636

aiohttp 1.3.1

09 Feb 14:51

Choose a tag to compare

CHANGES

  • Handle CLOSING in WebSocketResponse.__anext__
  • Fixed AttributeError 'drain' for server websocket handler #1613

aiohttp 1.3.0

08 Feb 18:40

Choose a tag to compare

CHANGES

  • Multipart writer validates the data on append instead of on a request send #920
  • Multipart reader accepts multipart messages with or without their epilogue
    to consistently handle valid and legacy behaviors #1526 #1581
  • Separate read + connect + request timeouts # 1523
  • Do not swallow Upgrade header #1587
  • Fix polls demo run application #1487
  • Ignore unknown 1XX status codes in client #1353
  • Fix sub-Multipart messages missing their headers on serialization #1525
  • Do not use readline when reading the content of a part
    in the multipart reader #1535
  • Add optional flag for quoting FormData fields #916
  • 416 Range Not Satisfiable if requested range end > file size #1588
  • Having a : or @ in a route does not work #1552
  • Added receive_timeout timeout for websocket to receive complete message. #1325
  • Added heartbeat parameter for websocket to automatically send ping message. #1024 #777
  • Remove web.Application dependency from web.UrlDispatcher #1510
  • Accepting back-pressure from slow websocket clients #1367
  • Do not pause transport during set_parser stage #1211
  • Lingering close doesn't terminate before timeout #1559
  • setsockopt may raise OSError exception if socket is closed already #1595
  • Lots of CancelledError when requests are interrupted #1565
  • Allow users to specify what should happen to decoding errors
    when calling a responses text() method #1542
  • Back port std module http.cookies for python3.4.2 #1566
  • Maintain url's fragment in client response #1314
  • Allow concurrently close WebSocket connection #754
  • Gzipped responses with empty body raises ContentEncodingError #609
  • Return 504 if request handle raises TimeoutError.
  • Refactor how we use keep-alive and close lingering timeouts.
  • Close response connection if we can not consume whole http
    message during client response release
  • Abort closed ssl client transports, broken servers can keep socket open un-limit time #1568
  • Log warning instead of RuntimeError is websocket connection is closed.
  • Deprecated: aiohttp.protocol.HttpPrefixParser
    will be removed in 1.4 #1590
  • Deprecated: Servers response's .started, .start() and .can_start() method
    will be removed in 1.4 #1591
  • Deprecated: Adding sub app via app.router.add_subapp() is deprecated
    use app.add_subapp() instead, will be removed in 1.4 #1592
  • Deprecated: aiohttp.get(), aiohttp.options(), aiohttp.head(), aiohttp.post(),
    aiohttp.put(), aiohttp.patch(), aiohttp.delete(), and aiohttp.ws_connect()
    will be removed in 1.4 #1593
  • Deprecated: Application.finish() and Application.register_on_finish()
    will be removed in 1.4 #1602

aiohttp 1.2.0

17 Dec 04:37

Choose a tag to compare

CHANGES

  • Extract BaseRequest from web.Request, introduce web.Server
    (former RequestHandlerFactory), introduce new low-level web server
    which is not coupled with web.Application and routing #1362
  • Make TestServer.make_url compatible with yarl.URL #1389
  • Implement range requests for static files #1382
  • Support task attribute for StreamResponse #1410
  • Drop TestClient.app property, use TestClient.server.app instead
    (BACKWARD INCOMPATIBLE)
  • Drop TestClient.handler property, use TestClient.server.handler instead
    (BACKWARD INCOMPATIBLE)
  • TestClient.server property returns a test server instance, was
    asyncio.AbstractServer (BACKWARD INCOMPATIBLE)
  • Follow gunicorn's signal semantics in Gunicorn[UVLoop]WebWorker #1201
  • Call worker_int and worker_abort callbacks in
    Gunicorn[UVLoop]WebWorker #1202
  • Has functional tests for client proxy #1218
  • Fix bugs with client proxy target path and proxy host with port #1413
  • Fix bugs related to the use of unicode hostnames #1444
  • Preserve cookie quoting/escaping #1453
  • FileSender will send gzipped response if gzip version available #1426
  • Don't override Content-Length header in web.Response if no body
    was set #1400
  • Introduce router.post_init() for solving #1373
  • Fix raise error in case of multiple calls of TimeServive.stop()
  • Allow to raise web exceptions on router resolving stage #1460
  • Add a warning for session creation outside of coroutine #1468
  • Avoid a race when application might start accepting incoming requests
    but startup signals are not processed yet e98e8c6
  • Raise a RuntimeError when trying to change the status of the HTTP response
    after the headers have been sent #1480
  • Fix bug with https proxy acquired cleanup #1340
  • Use UTF-8 as the default encoding for multipart text parts #1484

aiohttp 1.1.4

14 Nov 17:15

Choose a tag to compare

Bugfix release.

Changes

  • Make TestServer.make_url compatible with yarl.URL #1389
  • Generate informative exception on redirects from server which
    doesn't provide redirection headers #1396

aiohttp 1.1.3

10 Nov 21:05

Choose a tag to compare

Fixes

  • Support root resources for sub-applications #1379

aiohttp 1.1.2

08 Nov 16:20

Choose a tag to compare

Bugfix release.

Fixed bugs:

  • Allow starting variables with an underscore #1379
  • Properly process UNIX sockets by gunicorn worker #1375
  • Fix ordering for FrozenList
  • Don't propagate pre and post signals to sub-application #1377