aiohttp 0.20.0 release
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