- Raise
ConnectionResetError
instead ofCancelledError
on trying to write to a closed stream. (#2499) - Implement
ClientTimeout
class and support socket read timeout. (#2768) - Enable logging when
aiohttp.web
is 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.addresses
property. (#3036) - Use
bytearray
instead of a list ofbytes
in 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