Skip to content

aiohttp 0.20.0 release

Compare
Choose a tag to compare
@asvetlov asvetlov released this 28 Dec 05:40
· 10057 commits to master since this 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