pypi / uvicorn
uvicorn
What changed in uvicorn 0.46 to 0.54, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.
2 breaking1 security1 deprecations9 new APIs and options2 performance5 behavior and defaults14 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli inituvicorn 0.542 changes
New APIs and options 2
Applications can send resource hints over HTTP/2 before the final response; each supplied link becomes a separate Link header.
Applications can send metadata after an HTTP/2 response body; clients must send TE: trailers, and multiple trailer messages are combined before the response completes.
uvicorn 0.535 changes
Security 1
The default allowed forwarded-proxy IPs now include IPv6 loopback ::1.
New APIs and options 2
Adds experimental HTTP/2 support via zttp, enabled with --http zttp --http2; supports TLS ALPN and cleartext prior knowledge.
Adds zuvloop as an explicitly selectable event loop on CPython 3.14 or newer.
Fixes and other changes 2
Parses comma-separated Connection: close tokens case-insensitively across HTTP implementations.
Cancels the HTTP keep-alive timer when a connection becomes a WebSocket, keeping upgraded WebSockets alive.
uvicorn 0.5211 changes
New APIs and options 1
Adds an experimental HTTP/1.1 implementation backed by zttp, selectable with --http zttp; it is not recommended for production traffic.
Performance 2
Using zttp’s combined receive path improves HTTP/1.1 request parsing performance.
HTTP/1 request parsing performance is improved.
Fixes and other changes 8
Accepted WebSocket handshakes no longer include duplicate Date headers when using websockets-sansio.
Bodyless request receives are fixed.
The websockets-sansio and wsproto implementations complete the closing handshake by waiting up to 10 seconds for the client's close reply instead of resetting the connection.
The websockets-sansio implementation removes duplicate Content-Type and Content-Length headers from denial responses.
The websockets-sansio implementation delivers non-UTF-8 denial bodies intact.
Connection loss is handled while a WebSocket write is waiting on backpressure.
The websockets-sansio implementation adds missing write flow control to prevent data truncation on server-initiated closes with large in-flight payloads.
Keeps non-ASCII WebSocket request headers intact with websockets 17.0, which encodes them with ISO-8859-1.
uvicorn 0.512 changes
Breaking changes 1
colorama is removed from the standard extra.
Behavior and default changes 1
Workers restart with overlap on SIGHUP, enabling near-zero-downtime reloads.
uvicorn 0.505 changes
Deprecations 1
The legacy websockets implementation is deprecated.
Behavior and default changes 2
Startup failures exit with a dedicated code, and the supervisor stops when a worker cannot boot.
The
autochoice now defaults to websockets-sansio.
Fixes and other changes 2
Comma-separated values in Sec-WebSocket-Protocol are now split in the websockets-sansio implementation.
A fresh
asgiscope dict is built per request.
uvicorn 0.491 changes
Breaking changes 1
Consumes duplicate forwarding headers instead of ignoring them, reversing the 0.48.0 behavior.
uvicorn 0.482 changes
Behavior and default changes 1
Defaults ssl_ciphers to None, using OpenSSL defaults.
Fixes and other changes 1
Ignores duplicate forwarding headers.
uvicorn 0.473 changes
New APIs and options 1
Adds ssl_context_factory for custom SSLContext configuration.
Behavior and default changes 1
The ASGI app is imported eagerly in the parent process.
Fixes and other changes 1
Treats fd=0 as a valid file descriptor when using reload or workers.
uvicorn 0.463 changes
New APIs and options 3
The wsproto implementation now supports ws_max_size, allowing developers to configure the maximum WebSocket message size with that implementation.
The wsproto implementation now supports ws_ping_interval and ws_ping_timeout for configuring WebSocket ping behavior.
The wsproto implementation now supports ws_ping_interval and ws_ping_timeout for configuring WebSocket ping behavior.