- Many HTTP proxies has buggy keepalive support. Let's not reuse connection but close it after processing every response. (#3070)
- Provide vendor source files in tarball (#3076)
- Fix
sock_readtimeout. (#3053) - When using a server-request body as the
data=argument of a client request, iterate over the content withreadanyinstead ofreadlineto avoidLine too longerrors. (#3054)
- Raise
ConnectionResetErrorinstead ofCancelledErroron trying to write to a closed stream. (#2499) - Implement
ClientTimeoutclass and support socket read timeout. (#2768) - Enable logging when
aiohttp.webis used as a program (#2956) - Add canonical property to resources (#2968)
- Forbid reading response BODY after release (#2983)
- Implement base protocol class to avoid a dependency from internal
asyncio.streams.FlowControlMixin(#2986) - Cythonize
@helpers.reify, 5% boost on macro benchmark (#2995) - Optimize HTTP parser (#3015)
- Implement
runner.addressesproperty. (#3036) - Use
bytearrayinstead of a list ofbytesin websocket reader. It improves websocket message reading a little. (#3039) - Remove heartbeat on closing connection on keepalive timeout. The used hack violates HTTP protocol. (#3041)
- Limit websocket message size on reading to 4 MB by default. (#3045)
- Don't reuse a connection with the same URL but different proxy/TLS settings (#2981)
- When parsing the Forwarded header, the optional port number is now preserved. (#3009)
- Make Change Log more visible in docs (#3029)
- Make style and grammar improvements on the FAQ page. (#3030)
- Document that signal handlers should be async functions since aiohttp 3.0 (#3032)
- Deprecate custom application's router. (#3021)
- #3008, #3011