Releases: aio-libs/aiohttp
aiohttp 1.1.1
Changes
- Fix documentation generation #1120
aiohttp 1.1.0 releae
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.URLin client API. The change is 99% backward compatible
butClientResponse.urlis anyarl.URLinstance now. #1217 -
Close idle keep-alive connections on shutdown #1222
-
Modify regex in AccessLogger to accept underscore and numbers #1225
-
Use
yarl.URLin web server API.web.Request.rel_urland
web.Request.urlare added. URLs and templates are percent-encoded
now. #1224 -
Accept
yarl.URLby server redirections #1278 -
Return
yarl.URLby.make_url()testing utility #1279 -
Properly format IPv6 addresses by
aiohttp.web.run_app#1139 -
Use
yarl.URLby server API #1288- Introduce
resource.url_for(), deprecateresource.url(). - Implement
StaticResource. - Inherit
SystemRoutefromAbstractRoute - Drop old-style routes:
Route,PlainRoute,DynamicRoute,
StaticRoute,ResourceAdapter.
- Introduce
-
Revert
resp.urlback tostr, introduceresp.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
StaticRouteto follow symlinks #1299 -
Force encoding of
application/jsoncontent type to utf-8 #1339 -
Fix invalid invocations of
errors.LineTooLong#1335 -
Websockets: Stop
async foriteration when connection is closed #1144 -
Ensure TestClient HTTP methods return a context manager #1318
-
Raise
ClientDisconnectedErrortoFlowControlStreamReaderread function
ifClientSessionobject 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.Requestfromdictbut implement
MutableMappingprotocol. -
Implement frozen signals
-
Don't inherit
web.Applicationfromdictbut implement
MutableMappingprotocol. -
Support freezing for web applications
-
Accept access_log parameter in
web.run_app, useNoneto disable logging -
Don't flap
tcp_corkandtcp_nodelayin regular request handling.
tcp_nodelayis still enabled by default. -
Improve performance of web server by removing premature computing of
Content-Type if the value was set byweb.Responseconstructor.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
ClientResponsewithcontent_typeandcharset
properties like inweb.Request. #1349 -
Disable aiodns by default #559
-
Don't flap
tcp_corkin client code, use TCP_NODELAY mode by default. -
Implement
web.Request.clone()#1361
aiohttp 1.0.5 release
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
Changes
- Fix FlowControlStreamReader.read_nowait so that it checks
whether the transport is paused #1206
aiohttp 1.0.2 bugfix release
aiohttp 1.0.1 bugfix release
CHANGES
- Restore
aiohttp.web.MsgTypealias foraiohttp.WSMsgTypefor sake
of backward compatibility #1178 - Tune alabaster schema.
- Use
text/htmlcontent type for displaying index pages by static
file handler. - Fix
AssertionErrorin static file handling #1177 - Fix access log formats
%Oand%bfor static file handling
aiohttp 1.0 release
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.Timeoutis alias forasync_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
ProxyConnectoris deprecated, regular methods likeClientSession.get()acceptsproxyandproxy_authparameters explicitly #998- Default settings for
aiohttp.TCPConnectoruses 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 Requesthas.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_closedmethod (BACKWARD
INCOMPATIBLE) - Remove deprecated
forceparameter forClientResponse.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
proxyandproxy_authparams toclient.get()and family,
deprecateProxyConnector#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}elogger 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.startupin 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_nowaitis -1 from now #1150 aiohttp.StreamReaderis not inherited fromasyncio.StreamReaderfrom now
(BACKWARD INCOMPATIBLE) #1150- Streams documentation added #1150
- Add
multipartcoroutine 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
Timeoutclass for sake ofasync_timeoutexternal library.
aiohttp.Timeoutis an alias forasync_timeout.timeout use_dns_cacheparameter ofaiohttp.TCPConnectorisTrueby
default (BACKWARD INCOMPATIBLE) #1152aiohttp.TCPConnectoruses 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
AbstractCookieJarpublic 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
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
v0.22.4 Release 0.22.4
aiohttp 0.22.3 release
Changes
- Do not filter cookies if unsafe flag provided #1005
Thanks to Misha Behersky for finding and fixing!