Uvicorn

Latest version: v0.34.0

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 13

0.17.0

Added

- Allow configurable websocket per-message-deflate setting (1300)
- Support extra_headers for WS accept message (1293)
- Add missing http version on websockets scope (1309)

Fixed/Removed

- Drop Python 3.6 support (1261)
- Fix reload process behavior when exception is raised (1313)
- Remove `root_path` from logs (1294)

0.16.0

Added

- Enable read of uvicorn settings from environment variables (1279)
- Bump `websockets` to 10.0. (1180)
- Ensure non-zero exit code when startup fails (1278)
- Increase `httptools` version range from "==0.2.*" to ">=0.2.0,<0.4.0". (1243)
- Override default asyncio event loop with reload only on Windows (1257)
- Replace `HttpToolsProtocol.pipeline` type from `list` to `deque`. (1213)
- Replace `WSGIResponder.send_queue` type from `list` to `deque`. (1214)

Fixed

- Main process exit after startup failure on reloader classes (1177)
- Add explicit casting on click options (1217)
- Allow WebSocket close event to receive reason being None from ASGI app. (1259)
- Fix a bug in `WebSocketProtocol.asgi_receive` on which we returned a close frame even if there were data messages before that frame in the read queue. (1252)
- The option `--reload-dirs` was splitting a string into single character directories. (1267)
- Only second SIGINT is able to forcefully shutdown the server (1269)
- Allow app-dir parameter on the run() function (1271)

0.15.0

Added

- Change reload to be configurable with glob patterns. Currently only `.py` files are watched, which is different from the previous default behavior. (820)
- Add Python 3.10-rc.1 support. Now the server uses `asyncio.run` which will: start a fresh asyncio event loop, on shutdown cancel any background tasks rather than aborting them, `aexit` any remaining async generators, and shutdown the default `ThreadPoolExecutor`. (1070)
- Exit with status 3 when worker starts failed (1077)
- Add option to set websocket ping interval and timeout (1048)
- Adapt bind_socket to make it usable with multiple processes (1009)
- Add existence check to the reload directory(ies) (1089)
- Add missing trace log for websocket protocols (1083)
- Support disabling default Server and Date headers (818)

Changed

- Add PEP440 compliant version of click (1099)
- Bump asgiref to 3.4.0 (1100)

Fixed

- When receiving a `SIGTERM` supervisors now terminate their processes before joining them (1069)
- Fix the need of `httptools` on minimal installation (1135)
- Fix ping parameters annotation in Config class (1127)

0.14.0

Added

- Defaults ws max_size on server to 16MB (995)
- Improve user feedback if no ws library installed (926 and 1023)
- Support 'reason' field in 'websocket.close' messages (957)
- Implemented lifespan.shutdown.failed (755)

Changed

- Upgraded websockets requirements (1065)
- Switch to asyncio streams API (869)
- Update httptools from 0.1.* to 0.2.* (1024)
- Allow Click 8.0, refs 1016 (1042)
- Add search for a trusted host in ProxyHeadersMiddleware (591)
- Up wsproto to 1.0.0 (892)

Fixed

- Force reload_dirs to be a list (978)
- Fix gunicorn worker not running if extras not installed (901)
- Fix socket port 0 (975)
- Prevent garbage collection of main lifespan task (972)

0.13.4

Fixed

- Fixed wsgi middleware PATH_INFO encoding (962)
- Fixed uvloop dependency (952) then (959)
- Relax watchgod up bound (946)
- Return 'connection: close' header in response (721)

Added

- Docs: Nginx + websockets (948)
- Document the default value of 1 for workers (940) (943)
- Enabled permessage-deflate extension in websockets (764)

0.13.3

Fixed

- Prevent swallowing of return codes from `subprocess` when running with Gunicorn by properly resetting signals. (895)
- Tweak detection of app factories to be more robust. A warning is now logged when passing a factory without the `--factory` flag. (914)
- Properly clean tasks when handshake is aborted when running with `--ws websockets`. (921)

Page 8 of 13

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.