Uvicorn

Frameworks & Libraries

A lightning-fast ASGI server for Python web applications.

Latest 0.52.1 · by EncodeWebsiteencode/uvicorn

Release activity

Release activity — 10 releases across 10 days since Apr 21, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Apr 21, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 20261 release on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 20261 release on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 20261 release on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 20261 release on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 20261 release on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 20261 release on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 20261 release on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 20261 release on Aug 1, 2026No releases on Aug 8, 2026

10 releases since Apr 21, 2026

Changelog

0.52.1

Version 0.52.1

Fixed 4
  • Complete the closing handshake on server-initiated WebSocket closes in the websockets-sansio and wsproto implementations, waiting for the client's close reply with a 10 second timeout instead of resetting the connection
  • Add missing write flow control to the websockets-sansio implementation, preventing data truncation on server-initiated closes with large in-flight payloads
  • Handle connection loss while a WebSocket write is waiting on backpressure
  • Remove duplicate Content-Type and Content-Length headers from WebSocket denial responses on the websockets-sansio implementation, and deliver non-UTF-8 denial bodies intact
Fixed
  • Complete the closing handshake on server-initiated WebSocket closes in the websockets-sansio and wsproto implementations, 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-sansio implementation, 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-Type and Content-Length headers from WebSocket denial responses on the websockets-sansio implementation, and deliver non-UTF-8 denial bodies intact (#3041)

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.52.0...0.52.1

View originalPermalink
How 0.52.1 went
0.52.0

Version 0.52.0

Added 1
  • Add an experimental zttp HTTP/1.1 implementation, selectable with --http zttp
Fixed 1
  • Keep non-ASCII WebSocket request headers intact with websockets 17.0, which encodes them with ISO-8859-1

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
  • Add an experimental zttp HTTP/1.1 implementation, selectable with --http zttp (#2979)
Fixed
  • Keep non-ASCII WebSocket request headers intact with websockets 17.0, which encodes them with ISO-8859-1 (#3036)

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.51.0...0.52.0

View originalPermalink
How 0.52.0 went
0.51.0

Version 0.51.0

Changed 1
  • Restart workers with overlap on SIGHUP for near-zero-downtime reloads
Removed 1
  • Remove colorama from the standard extra
What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.50.2...0.51.0

View originalPermalink
How 0.51.0 went
0.50.1

Version 0.50.1

Fixed 1
  • Split comma-separated Sec-WebSocket-Protocol values in the websockets-sansio implementation
What's Changed
New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.50.0...0.50.1

View originalPermalink
How 0.50.1 went
0.50.0

Version 0.50.0

Changed 7
  • Memoize trusted host checks to avoid re-parsing the client IP per request
  • Cache the asgi scope sub-dict per connection
  • Build a fresh asgi scope dict per request
  • Replace click.style with an internal ANSI style helper
  • Avoid copying single-frame WebSocket payloads in websockets-sansio
  • Exit with a dedicated code on startup failure and stop the supervisor when a worker can't boot
  • Skip the eager app import in the parent when spawning workers
Deprecated 1
  • Deprecate the legacy websockets implementation and default auto to websockets-sansio
What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.49.0...0.50.0

View originalPermalink
How 0.50.0 went
0.49.0

Version 0.49.0

Changed 2
  • Bump httptools minimum version to 0.8.0
  • Consume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them)
What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0

View originalPermalink
How 0.49.0 went
0.48.0

Version 0.48.0

Changed 2
  • Default ssl_ciphers to None and use OpenSSL defaults
  • Ignore duplicate forwarding headers in ProxyHeadersMiddleware
What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0

View originalPermalink
How 0.48.0 went
0.47.0

Version 0.47.0

Added 1
  • Add ssl_context_factory for custom SSLContext configuration
Changed 1
  • Eagerly import the ASGI app in the parent process
Fixed 1
  • Treat fd=0 as a valid file descriptor with reload/workers
What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0

View originalPermalink
How 0.47.0 went
0.46.0

Version 0.46.0

Added 2
  • Support `ws_max_size` in `wsproto` implementation
  • Support `ws_ping_interval` and `ws_ping_timeout` in `wsproto` implementation
Changed 1
  • Use `bytearray` for incoming WebSocket message buffer in websockets-sansio
What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0

View originalPermalink
How 0.46.0 went
0.45.0

Version 0.45.0

Added 3
  • Accept os.PathLike for log_config
  • Raise helpful ImportError when PyYAML is missing for YAML log config
  • Add --reset-contextvars flag to isolate ASGI request context
Changed 2
  • Preserve forwarded client ports in proxy headers middleware
  • Accept log_level strings case-insensitively
Fixed 2
  • Revert empty context for ASGI runs
  • Revert emission of http.disconnect on server shutdown for streaming responses
What's Changed
New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0

View originalPermalink
How 0.45.0 went
View all

Discussion