build(deps): update uvicorn requirement from <0.52,>=0.51 to >=0.51,<0.54
Updates the requirements on uvicorn to permit the latest version.
Release notes
Sourced from uvicorn's releases.
Version 0.53.0
🌐 Opt-in HTTP/2 support
uvicorn0.53.0 adds experimental HTTP/2 throughzttp, alongside a newzuvloopintegration and connection-handling improvements.uv add uvicorn==0.53.0
- Serve HTTP/1.1 and HTTP/2 with
zttp(#2982, #3101). Installzttp, then enable HTTP/2 with--http zttp --http2. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.- HTTP/2 remains experimental. Upgrade-based h2c and WebSockets over HTTP/2 are not supported.
⚙️ More event loop choice
- Run Uvicorn with
zuvloop(#3104). Installzuvloopseparately and select it explicitly with--loop zuvloopon CPython 3.14 or newer.🛡️ More reliable connections and proxies
- Honor
Connection: closetoken lists (#3103). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.- Trust IPv6 loopback proxies by default (#3119). The default
FORWARDED_ALLOW_IPSvalue now includes::1.- Keep upgraded WebSockets alive (#3107). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.
Full changelog: 0.52.4...0.53.0
Changelog
Sourced from uvicorn's changelog.
0.53.0 (September 14, 2026)
This release adds experimental HTTP/2 support through
zttp. Enable it with--http zttp --http2. Upgrade-based h2c and WebSockets over HTTP/2 are not supported.Added
Fixed
- Handle comma-separated, case-insensitive
Connection: closetokens across HTTP implementations (#3103)- Trust IPv6 loopback in the default
FORWARDED_ALLOW_IPSvalue (#3119)- Cancel the HTTP keep-alive timer when upgrading to WebSocket (#3107)
0.52.4 (August 18, 2026)
Fixed
- Remove duplicate
Dateheaders from accepted WebSocket handshakes withwebsockets-sansio(#3078)0.52.3 (August 13, 2026)
Changed
- Update
zttpto 0.0.24 and use its combined receive path, improving HTTP/1.1 request parsing performance (#3067)0.52.2 (August 13, 2026)
Fixed
- Update
zttpto 0.0.22, fixing bodyless request receives and improving HTTP/1 request parsing performance (#3063)0.52.1 (August 1, 2026)
Fixed
- Complete the closing handshake on server-initiated WebSocket closes in the
websockets-sansioandwsprotoimplementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection (#3053)- Add missing write flow control to the
websockets-sansioimplementation, preventing data truncation on server-initiated closes with large in-flight payloads (#3048)- Handle connection loss while a WebSocket write is waiting on backpressure (#3050)
- Remove duplicate
Content-TypeandContent-Lengthheaders from WebSocket denial responses on thewebsockets-sansioimplementation, and deliver non-UTF-8 denial bodies intact (#3041)0.52.0 (July 29, 2026)
This release adds an experimental HTTP/1.1 implementation backed by zttp, a sans-IO HTTP parser I've been developing on the side: a core written in Zig, with bindings to Python. It has been running under a fuzzer for some weeks now, and has been through multiple rounds of security auditing.
It is still experimental, so don't put it in front of production traffic yet. Try it with
--http zttp, and please send any feedback to the issue tracker.Added
... (truncated)
Commits
421708fVersion 0.53.0 (#3136)f1a1bffUnset the keep-alive timer when upgrading to WebSocket (#3107)63971edDocument HTTP/2 support (#3130)7d1a005Remove race from multiprocess health check test (#3128)5ac6265Add ::1 to FORWARDED_ALLOW_IPS (#3119)098b206Remove timing race from SIGHUP supervisor test (#3127)968f15echore(deps): bump the github-actions group with 4 updates (#3113)7d4c08cchore(deps): bump the python-packages group across 1 directory with 11 update...fe528a4Require explicit opt-in for zttp HTTP/2 (#3101)fa324a4chore(deps-dev): bump httpx2 from 2.10.0 to 2.12.0 (#3121)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)