Releases: aio-libs/aiohttp
3.11.18
Bug fixes
-
Disabled TLS in TLS warning (when using HTTPS proxies) for uvloop and newer Python versions -- by :user:
lezgomatt
.Related issues and pull requests on GitHub:
#7686. -
Fixed reading fragmented WebSocket messages when the payload was masked -- by :user:
bdraco
.The problem first appeared in 3.11.17
Related issues and pull requests on GitHub:
#10764.
3.11.17
Miscellaneous internal changes
-
Optimized web server performance when access logging is disabled by reducing time syscalls -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10713. -
Improved web server performance when connection can be reused -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10714. -
Improved performance of the WebSocket reader -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10740. -
Improved performance of the WebSocket reader with large messages -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10744.
3.11.16
Bug fixes
-
Replaced deprecated
asyncio.iscoroutinefunction
with its counterpart frominspect
-- by :user:layday
.Related issues and pull requests on GitHub:
#10634. -
Fixed :class:
multidict.CIMultiDict
being mutated when passed to :class:aiohttp.web.Response
-- by :user:bdraco
.Related issues and pull requests on GitHub:
#10672.
3.11.15
Bug fixes
-
Reverted explicitly closing sockets if an exception is raised during
create_connection
-- by :user:bdraco
.This change originally appeared in aiohttp 3.11.13
Related issues and pull requests on GitHub:
#10464, #10617, #10656.
Miscellaneous internal changes
-
Improved performance of WebSocket buffer handling -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10601. -
Improved performance of serializing headers -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10625.
3.11.14
Bug fixes
-
Fixed an issue where dns queries were delayed indefinitely when an exception occurred in a
trace.send_dns_cache_miss
-- by :user:logioniz
.Related issues and pull requests on GitHub:
#10529. -
Fixed DNS resolution on platforms that don't support
socket.AI_ADDRCONFIG
-- by :user:maxbachmann
.Related issues and pull requests on GitHub:
#10542. -
The connector now raises :exc:
aiohttp.ClientConnectionError
instead of :exc:OSError
when failing to explicitly close the socket after :py:meth:asyncio.loop.create_connection
fails -- by :user:bdraco
.Related issues and pull requests on GitHub:
#10551. -
Break cyclic references at connection close when there was a traceback -- by :user:
bdraco
.Special thanks to :user:
availov
for reporting the issue.Related issues and pull requests on GitHub:
#10556. -
Break cyclic references when there is an exception handling a request -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10569.
Features
-
Improved logging on non-overlapping WebSocket client protocols to include the remote address -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10564.
Miscellaneous internal changes
-
Improved performance of parsing content types by adding a cache in the same manner currently done with mime types -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10552.
3.11.13
Bug fixes
-
Removed a break statement inside the finally block in :py:class:
~aiohttp.web.RequestHandler
-- by :user:Cycloctane
.Related issues and pull requests on GitHub:
#10434. -
Changed connection creation to explicitly close sockets if an exception is raised in the event loop's
create_connection
method -- by :user:top-oai
.Related issues and pull requests on GitHub:
#10464.
Packaging updates and notes for downstreams
-
Fixed test
test_write_large_payload_deflate_compression_data_in_eof_writelines
failing with Python 3.12.9+ or 3.13.2+ -- by :user:bdraco
.Related issues and pull requests on GitHub:
#10423.
Miscellaneous internal changes
-
Added human-readable error messages to the exceptions for WebSocket disconnects due to PONG not being received -- by :user:
bdraco
.Previously, the error messages were empty strings, which made it hard to determine what went wrong.
Related issues and pull requests on GitHub:
#10422.
3.11.12
Bug fixes
-
MultipartForm.decode()
now follows RFC1341 7.2.1 with aCRLF
after the boundary
-- by :user:imnotjames
.Related issues and pull requests on GitHub:
#10270. -
Restored the missing
total_bytes
attribute toEmptyStreamReader
-- by :user:bdraco
.Related issues and pull requests on GitHub:
#10387.
Features
-
Updated :py:func:
~aiohttp.request
to make it accept_RequestOptions
kwargs.
-- by :user:Cycloctane
.Related issues and pull requests on GitHub:
#10300. -
Improved logging of HTTP protocol errors to include the remote address -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10332.
Improved documentation
-
Added
aiohttp-openmetrics
to list of third-party libraries -- by :user:jelmer
.Related issues and pull requests on GitHub:
#10304.
Packaging updates and notes for downstreams
-
Added missing files to the source distribution to fix
Makefile
targets.
Added acythonize-nodeps
target to run Cython without invoking pip to install dependencies.Related issues and pull requests on GitHub:
#10366. -
Started building armv7l musllinux wheels -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10404.
Contributor-facing changes
-
The CI/CD workflow has been updated to use
upload-artifact
v4 anddownload-artifact
v4 GitHub Actions -- by :user:silamon
.Related issues and pull requests on GitHub:
#10281.
Miscellaneous internal changes
-
Restored support for zero copy writes when using Python 3.12 versions 3.12.9 and later or Python 3.13.2+ -- by :user:
bdraco
.Zero copy writes were previously disabled due to :cve:
2024-12254
which is resolved in these Python versions.Related issues and pull requests on GitHub:
#10137.
3.11.11
Bug fixes
-
Updated :py:meth:
~aiohttp.ClientSession.request
to reuse thequote_cookie
setting fromClientSession._cookie_jar
when processing cookies parameter.
-- by :user:Cycloctane
.Related issues and pull requests on GitHub:
#10093. -
Fixed type of
SSLContext
for some static type checkers (e.g. pyright).Related issues and pull requests on GitHub:
#10099. -
Updated :meth:
aiohttp.web.StreamResponse.write
annotation to also allow :class:bytearray
and :class:memoryview
as inputs -- by :user:cdce8p
.Related issues and pull requests on GitHub:
#10154. -
Fixed a hang where a connection previously used for a streaming
download could be returned to the pool in a paused state.
-- by :user:javitonino
.Related issues and pull requests on GitHub:
#10169.
Features
-
Enabled ALPN on default SSL contexts. This improves compatibility with some
proxies which don't work without this extension.
-- by :user:Cycloctane
.Related issues and pull requests on GitHub:
#10156.
Miscellaneous internal changes
-
Fixed an infinite loop that can occur when using aiohttp in combination
withasync-solipsism
_ -- by :user:bmerry
... _async-solipsism: https://github.com/bmerry/async-solipsism
Related issues and pull requests on GitHub:
#10149.
3.11.10
Bug fixes
-
Fixed race condition in :class:
aiohttp.web.FileResponse
that could have resulted in an incorrect response if the file was replaced on the file system duringprepare
-- by :user:bdraco
. -
Replaced deprecated call to :func:
mimetypes.guess_type
with :func:mimetypes.guess_file_type
when using Python 3.13+ -- by :user:bdraco
.Related issues and pull requests on GitHub:
#10102. -
Disabled zero copy writes in the
StreamWriter
-- by :user:bdraco
.Related issues and pull requests on GitHub:
#10125.
3.11.9
Bug fixes
-
Fixed invalid method logging unexpected being logged at exception level on subsequent connections -- by :user:
bdraco
.
Miscellaneous internal changes
-
Improved performance of parsing headers when using the C parser -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#10073.