unstale

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 init

@unstale/cli on npm

uvicorn 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.

    0.54.0release notes

  • 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.

    0.54.0release notes

uvicorn 0.535 changes

Security 1

  • The default allowed forwarded-proxy IPs now include IPv6 loopback ::1.

    0.53.0release notes

New APIs and options 2

  • Adds experimental HTTP/2 support via zttp, enabled with --http zttp --http2; supports TLS ALPN and cleartext prior knowledge.

    0.53.0release notes

  • Adds zuvloop as an explicitly selectable event loop on CPython 3.14 or newer.

    0.53.0release notes

Fixes and other changes 2

  • Parses comma-separated Connection: close tokens case-insensitively across HTTP implementations.

    0.53.0release notes

  • Cancels the HTTP keep-alive timer when a connection becomes a WebSocket, keeping upgraded WebSockets alive.

    0.53.0release notes

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.

    0.52.0release notes

Performance 2

  • Using zttp’s combined receive path improves HTTP/1.1 request parsing performance.

    0.52.3release notes

  • HTTP/1 request parsing performance is improved.

    0.52.2release notes

Fixes and other changes 8

  • Accepted WebSocket handshakes no longer include duplicate Date headers when using websockets-sansio.

    0.52.4release notes

  • Bodyless request receives are fixed.

    0.52.2release notes

  • 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.

    0.52.1release notes

  • The websockets-sansio implementation removes duplicate Content-Type and Content-Length headers from denial responses.

    0.52.1release notes

  • The websockets-sansio implementation delivers non-UTF-8 denial bodies intact.

    0.52.1release notes

  • Connection loss is handled while a WebSocket write is waiting on backpressure.

    0.52.1release notes

  • The websockets-sansio implementation adds missing write flow control to prevent data truncation on server-initiated closes with large in-flight payloads.

    0.52.1release notes

  • Keeps non-ASCII WebSocket request headers intact with websockets 17.0, which encodes them with ISO-8859-1.

    0.52.0release notes

uvicorn 0.512 changes

Breaking changes 1

Behavior and default changes 1

  • Workers restart with overlap on SIGHUP, enabling near-zero-downtime reloads.

    0.51.0release notes

uvicorn 0.505 changes

Deprecations 1

  • The legacy websockets implementation is deprecated.

    0.50.0release notes

Behavior and default changes 2

  • Startup failures exit with a dedicated code, and the supervisor stops when a worker cannot boot.

    0.50.0release notes

  • The auto choice now defaults to websockets-sansio.

    0.50.0release notes

Fixes and other changes 2

  • Comma-separated values in Sec-WebSocket-Protocol are now split in the websockets-sansio implementation.

    0.50.1release notes

  • A fresh asgi scope dict is built per request.

    0.50.0release notes

uvicorn 0.491 changes

Breaking changes 1

  • Consumes duplicate forwarding headers instead of ignoring them, reversing the 0.48.0 behavior.

    0.49.0release notes

uvicorn 0.482 changes

Behavior and default changes 1

  • Defaults ssl_ciphers to None, using OpenSSL defaults.

    0.48.0release notes

Fixes and other changes 1

uvicorn 0.473 changes

New APIs and options 1

  • Adds ssl_context_factory for custom SSLContext configuration.

    0.47.0release notes

Behavior and default changes 1

  • The ASGI app is imported eagerly in the parent process.

    0.47.0release notes

Fixes and other changes 1

  • Treats fd=0 as a valid file descriptor when using reload or workers.

    0.47.0release notes

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.

    0.46.0release notes

  • The wsproto implementation now supports ws_ping_interval and ws_ping_timeout for configuring WebSocket ping behavior.

    0.46.0release notes

  • The wsproto implementation now supports ws_ping_interval and ws_ping_timeout for configuring WebSocket ping behavior.

    0.46.0release notes