aiohttp 2.0.0
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 problems across whole package.
Client exceptions handling has been cleaned up and now much more straight forward. Client payload
management simplified and allows to extend with any custom type. Client connection pool
implementation has been redesigned as well, now there is no need for actively releasing response objects,
aiohttp handles connection release automatically.
Another major change, we moved aiohttp development to public organization https://github.com/aio-libs
With this amount of api changes 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
Changes
2.0.0 (2017-03-20)
-
Added
json
toClientSession.request()
method #1726 -
Added session's
raise_for_status
parameter, automatically calls raise_for_status() on any request. #1724 -
response.json()
raisesClientReponseError
exception if response's
content type does not match #1723 -
Cleanup timer and loop handle on any client exception.
-
Deprecate
loop
parameter for Application's constructor
2.0.0rc1
(2017-03-15)
-
Properly handle payload errors #1710
-
Added
ClientWebSocketResponse.get_extra_info()
#1717 -
It is not possible to combine Transfer-Encoding and chunked parameter,
same for compress and Content-Encoding #1655 -
Connector's
limit
parameter indicates total concurrent connections.
Newlimit_per_host
added, indicates total connections per endpoint. #1601 -
Use url's
raw_host
for name resolution #1685 -
Change
ClientResponse.url
toyarl.URL
instance #1654 -
Add max_size parameter to web.Request reading methods #1133
-
Web Request.post() stores data in temp files #1469
-
Add the
allow_head=True
keyword argument foradd_get
#1618 -
run_app
and the Command Line Interface now support serving over
Unix domain sockets for faster inter-process communication. -
run_app
now supports passing a preexisting socket object. This can be useful
e.g. for socket-based activated applications, when binding of a socket is
done by the parent process. -
Implementation for Trailer headers parser is broken #1619
-
Fix FileResponse to not fall on bad request (range out of file size)
-
Fix FileResponse to correct stream video to Chromes
-
Deprecate public low-level api #1657
-
Deprecate
encoding
parameter for ClientSession.request() method -
Dropped aiohttp.wsgi #1108
-
Dropped
version
from ClientSession.request() method -
Dropped websocket version 76 support #1160
-
Dropped:
aiohttp.protocol.HttpPrefixParser
#1590 -
Dropped: Servers response's
.started
,.start()
and.can_start()
method #1591 -
Dropped: Adding
sub app
viaapp.router.add_subapp()
is deprecated
useapp.add_subapp()
instead #1592 -
Dropped:
Application.finish()
andApplication.register_on_finish()
#1602 -
Dropped:
web.Request.GET
andweb.Request.POST
-
Dropped: aiohttp.get(), aiohttp.options(), aiohttp.head(),
aiohttp.post(), aiohttp.put(), aiohttp.patch(), aiohttp.delete(), and
aiohttp.ws_connect() #1593 -
Dropped:
aiohttp.web.WebSocketResponse.receive_msg()
#1605 -
Dropped:
ServerHttpProtocol.keep_alive_timeout
attribute and
keep-alive
,keep_alive_on
,timeout
,log
constructor parameters #1606 -
Dropped:
TCPConnector's``
.resolve,
.resolved_hosts,
.clear_resolved_hosts()attributes and
resolve` constructor parameter #1607 -
Dropped
ProxyConnector
#1609