Skip to content

Releases: Kludex/uvicorn

Version 0.49.0

03 Jun 21:59
3ef2e3e

Choose a tag to compare

What's Changed

  • Bump httptools minimum version to 0.8.0 by @Kludex in #2962
  • Consume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) by @Kludex in #2971

Full Changelog: 0.48.0...0.49.0

Version 0.48.0

24 May 12:07
73e84e5

Choose a tag to compare

What's Changed

  • Default ssl_ciphers to None and use OpenSSL defaults by @Kludex in #2940
  • Ignore duplicate forwarding headers in ProxyHeadersMiddleware by @Kludex in #2944

Full Changelog: 0.47.0...0.48.0

Version 0.47.0

14 May 13:21
479a2c0

Choose a tag to compare

What's Changed

  • Eagerly import the ASGI app in the parent process by @Kludex in #2919
  • Add ssl_context_factory for custom SSLContext configuration by @Kludex in #2920
  • Treat fd=0 as a valid file descriptor with reload/workers by @eltoder in #2927

Full Changelog: 0.46.0...0.47.0

Version 0.46.0

23 Apr 06:34
b224045

Choose a tag to compare

What's Changed

  • Support ws_max_size in wsproto implementation by @Kludex in #2915
  • Support ws_ping_interval and ws_ping_timeout in wsproto implementation by @Kludex in #2916
  • Use bytearray for incoming WebSocket message buffer in websockets-sansio by @Kludex in #2917

Full Changelog: 0.45.0...0.46.0

Version 0.45.0

21 Apr 10:42
2c423bd

Choose a tag to compare

What's Changed

  • Preserve forwarded client ports in proxy headers middleware by @Kludex in #2903
  • Accept os.PathLike for log_config by @Kludex in #2905
  • Accept log_level strings case-insensitively by @Kludex in #2907
  • Raise helpful ImportError when PyYAML is missing for YAML log config by @Kludex in #2906
  • Revert empty context for ASGI runs by @Kludex in #2911
  • Add --reset-contextvars flag to isolate ASGI request context by @Kludex in #2912
  • Revert "Emit http.disconnect on server shutdown for streaming responses" (#2829) by @Kludex in #2913

New Contributors

Full Changelog: 0.44.0...0.45.0

Version 0.44.0

06 Apr 09:22
edb54c4

Choose a tag to compare

What's Changed

  • Implement websocket keepalive pings for websockets-sansio by @Kludex in #2888

Full Changelog: 0.43.0...0.44.0

Version 0.43.0

03 Apr 18:36
8d397c7

Choose a tag to compare

Changed

  • Emit http.disconnect ASGI receive() event on server shutting down for streaming responses (#2829)
  • Use native context parameter for create_task on Python 3.11+ (#2859)
  • Drop cast in ASGI types (#2875)

Full Changelog: 0.42.0...0.43.0

Version 0.42.0

16 Mar 06:17
02bed6f

Choose a tag to compare

Changed

  • Use bytearray for request body accumulation to avoid O(n^2) allocation on fragmented bodies (#2845)

Fixed

  • Escape brackets and backslash in httptools HEADER_RE regex (#2824)
  • Fix multiple issues in websockets sans-io implementation (#2825)

New Contributors


Full Changelog: 0.41.0...0.42.0

Version 0.41.0

16 Feb 22:56
9283c0f

Choose a tag to compare

Added

  • Add --limit-max-requests-jitter to stagger worker restarts (#2707)
  • Add socket path to scope["server"] (#2561)

Changed

  • Rename LifespanOn.error_occured to error_occurred (#2776)

Fixed

  • Ignore permission denied errors in watchfiles reloader (#2817)
  • Ensure lifespan shutdown runs when should_exit is set during startup (#2812)
  • Reduce the log level of 'request limit exceeded' messages (#2788)

New Contributors


Full Changelog: 0.40.0...0.41.0

Version 0.40.0

21 Dec 14:11
9ff6004

Choose a tag to compare

What's Changed

Full Changelog: 0.39.0...0.40.0