# Python : Web : Uvicorn \[ [PyPi](https://pypi.org/project/uvicorn/) | [Source](https://github.com/encode/uvicorn/) | [Docs](https://www.uvicorn.org/) ] An ASGI web server implementation for Python with support for HTTP/1.1 and WebSockets. #### Packages ``` uvicorn # minimal / pure Python uvicorn[ standard ] # Cython-based dependencies and other "optional extras" ``` In this context, "Cython-based" means the following: - the event loop `uvloop` will be installed and used if possible - the http protocol will be handled by `httptools` if possible Moreover, "optional extras" means that: - the websocket protocol will be handled by [websockets](https://pypi.org/project/websockets/) if possible - the `--reload` flag in development mode will use [watchfiles](https://pypi.org/project/watchfiles/) - windows users will have [colorama](https://pypi.org/project/colorama/) installed for the colored logs - [python-dotenv](https://pypi.org/project/python-dotenv/) will be installed should you want to use the `--env-file` option - [PyYAML](https://pypi.org/project/PyYAML/) will be installed to allow you to provide a .yaml file to `--log-config`, if desired #### Running ```bash $ uvicorn [options] example:app --help --host 127.0.0.1 --port 8000 # 0 -> pick any available --reload # enable auto-reload --reload* # narrow which files are watched --workers INT # processes; defaults to 1; not valid with --reload --loop auto # auto | asyncio | uvloop --limit-concurrency INT # ...many more... ```