- Prevent swallowing of return codes from
subprocess
when running with Gunicorn by properly resetting signals. (Pull #895) - Tweak detection of app factories to be more robust. A warning is now logged when passing a factory without the
--factory
flag. (Pull #914) - Properly clean tasks when handshake is aborted when running with
--ws websockets
. (Pull #921)
- Log full exception traceback in case of invalid HTTP request. (Pull #886 and #888)
- Prevent exceptions when the ASGI application rejects a connection during the WebSocket handshake, when running on both
--ws wsproto
or--ws websockets
. (Pull #704 and #881) - Ensure connection
scope
doesn't leak in logs when using JSON log formatters. (Pull #859 and #884)
- Add
--factory
flag to support factory-style application imports. (#875) 2020-12-07 50fc0d1c - Skip installation of signal handlers when not in the main thread. Allows using
Server
in multithreaded contexts without having to override.install_signal_handlers()
. (#871) 2020-12-07 ce2ef45a
- Fix race condition that leads Quart to hang with uvicorn (#848) 11/18/20 de213614
- Use latin1 when decoding X-Forwarded-* headers (#701) 11/12/20 45e6e831
- Rework IPv6 support (#837) 11/8/20 bdab488e
- Cancel old keepalive-trigger before setting new one. (#832) 10/26/20 d5dcf80c
- Adding ability to decrypt ssl key file (#808) 10/12/20 90dbb6e0
- Support .yml log config files (#799) 10/6/20 b468950e
- Added python 3.9 support (#804) 10/6/20 08fd0559
- Fixes watchgod with common prefixes (#817) 10/14/20 1b32f997
- Fix reload with ipv6 host (#803) 10/14/20 5acaee5b
- Added cli suport for headers containing colon (#813) 10/12/20 68732899
- Sharing socket across workers on windows (#802) 10/12/20 103167a0
- Note the need to configure trusted "ips" when using unix sockets (#796) 10/4/20 a504c569
- Pinning h11 and python-dotenv to min versions (#789) 9/29/20 bbf19c66
- Get docs/index.md in sync with README.md (#784) 9/29/20 70ebcfdf
- Improve changelog by pointing out breaking changes (#792) 9/29/20 e2b75064
- Make reload delay configurable (#774) 9/28/20 98010027
- Upgrade maximum h11 dependency version to 0.10 (#772) 8/28/20 54d729cc
- Allow .json or .yaml --log-config files (#665) 8/18/20 093a1f7c
- Add ASGI dict to the lifespan scope (#754) 8/15/20 8150c3eb
- Upgrade wsproto to 0.15.0 (#750) 8/13/20 fbce393f
- Use optional package installs (#666) 8/10/20 5fa99a11
- Dont set log level for root logger (#767) 8/28/20 df81b168
- Uvicorn no longer ships extra dependencies
uvloop
,websockets
andhttptools
as default. To install these dependencies useuvicorn[standard]
.
- Revert "Improve shutdown robustness when using
--reload
or multiprocessing (#620)" (#756) 8/28/20 ff4af12d - Fix terminate error in windows (#744) 8/27/20 dd3b842d
- Fix bug where --log-config disables uvicorn loggers (#512) 8/11/20 a9c37cc4
- Fix a regression that caused Uvicorn to crash when using
--interface=wsgi
. (Pull #730) - Fix a regression that caused Uvicorn to crash when using unix domain sockets. (Pull #729)
- SECURITY FIX: Prevent sending invalid HTTP header names and values. (Pull #725)
- SECURITY FIX: Ensure path value is escaped before logging to the console. (Pull #724)
- Fix
--proxy-headers
client IP and host when using a Unix socket. (Pull #636)
- Fix overriding the root logger.
- Revert "Watch all files, not just .py" due to unexpected side effects.
- Revert "Pass through gunicorn timeout config." due to unexpected side effects.
- Use
watchgod
, if installed, for watching code changes. - Watch all files, not just .py.
- Pass through gunicorn timeout config.
- Update dependencies.
- Don't open socket until after application startup.
- Support
--backlog
.
- Use a more liberal
h11
dependency. Either0.8.*
or `0.9.*``.
- Fix reload/multiprocessing on Windows with Python 3.8.
- Drop IOCP support. (Required for fix above.)
- Add
uvicorn --version
flag. - Add
--use-colors
and--no-use-colors
flags. - Display port correctly, when auto port selection isused with
--port=0
.
- Fix reload/multiprocessing error.
- Use resource_sharer.DupSocket to resolve socket sharing on Windows.
- Exit if
workers
orreload
are use without an app import string style. - Reorganise supervisor processes to properly hand over sockets on windows.
- Update uvloop dependency to 0.14+
- Error clearly when
workers=<NUM>
is used with app instance, instead of an app import string. - Switch
--reload-dir
to current working directory by default.
- Add ``--log-level trace`
- Enable --proxy-headers by default.
- Resolve issues with logging when using
--reload
or--workers
. - Setup up root logger to capture output for all logger instances, not just
uvicorn.error
anduvicorn.access
.
- Support for Python 3.8
- Separated out
uvicorn.error
anduvicorn.access
logs. - Coloured log output when connected to a terminal.
- Dropped
logger=
config setting. - Added
--log-config [FILE]
andlog_config=[str|dict]
. May either be a Python logging config dictionary or the file name of a logging configuration. - Added
--forwarded_allow_ips
andforwarded_allow_ips
. Defaults to the value of the$FORWARDED_ALLOW_IPS
environment variable or "127.0.0.1". The--proxy-headers
flag now defaults toTrue
, but only trusted IPs are used to populate forwarding info. - The
--workers
setting now defaults to the value of the$WEB_CONCURRENCY
environment variable. - Added support for
--env-file
. Requirespython-dotenv
.