# Uvicorn 0.50.0 — Version 0.50.0 - Product: Uvicorn (https://whatsnew.fyi/product/uvicorn) - Vendor: Encode - Date: 2026-07-04 - Version: 0.50.0 - Original notes: https://github.com/Kludex/uvicorn/releases/tag/0.50.0 - Permalink: https://whatsnew.fyi/product/uvicorn/releases/0.50.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Memoize trusted host checks to avoid re-parsing the client IP per request - **changed** — Cache the asgi scope sub-dict per connection - **changed** — Build a fresh asgi scope dict per request - **changed** — Replace click.style with an internal ANSI style helper - **changed** — Avoid copying single-frame WebSocket payloads in websockets-sansio - **deprecated** — Deprecate the legacy websockets implementation and default auto to websockets-sansio - **changed** — Exit with a dedicated code on startup failure and stop the supervisor when a worker can't boot - **changed** — Skip the eager app import in the parent when spawning workers ##### What's Changed * Memoize trusted host checks to avoid re-parsing the client IP per request by @Kludex in https://github.com/Kludex/uvicorn/pull/2970 * Cache the `asgi` scope sub-dict per connection by @Kludex in https://github.com/Kludex/uvicorn/pull/2976 * Build a fresh `asgi` scope dict per request by @Kludex in https://github.com/Kludex/uvicorn/pull/2977 * Replace click.style with an internal ANSI style helper by @Kludex in https://github.com/Kludex/uvicorn/pull/2981 * Avoid copying single-frame WebSocket payloads in websockets-sansio by @Kludex in https://github.com/Kludex/uvicorn/pull/2983 * Deprecate the legacy websockets implementation and default `auto` to websockets-sansio by @Kludex in https://github.com/Kludex/uvicorn/pull/2985 * Exit with a dedicated code on startup failure and stop the supervisor when a worker can't boot by @Kludex in https://github.com/Kludex/uvicorn/pull/3001 * Skip the eager app import in the parent when spawning workers by @Kludex in https://github.com/Kludex/uvicorn/pull/3012 **Full Changelog**: https://github.com/Kludex/uvicorn/compare/0.49.0...0.50.0