On this page
Overview
Uvicorn is an ASGI web server for Python. ASGI separates application code from the server implementation, allowing asynchronous frameworks to run over HTTP/1.1, WebSockets, and an optional experimental HTTP/2 stack.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Run ASGI applications through a server independent of the framework
Uvicorn loads an ASGI application through the module:app convention and serves HTTP/1.1 and WebSocket traffic. The ASGI boundary lets asynchronous applications such as Starlette and FastAPI connect to the same server implementation.
Sources: [2]
Add optimized I/O, reload, WebSocket, and configuration helpers with the standard extra
uvicorn[standard] adds uvloop and httptools where supported, plus WebSocket support, watchfiles-based reload, .env loading, and YAML log configuration dependencies. Applications can choose between the minimal dependency set and the broader operational bundle.
Best fit
Fits asynchronous Python APIs that keep framework and server concerns separate
It works well when an ASGI framework should remain separate from the web server process, with reload behavior and deployment process choices handled outside application code.
Sources: [2]
Before adoption
Use Python 3.10+ and treat HTTP/2 as an experimental opt-in path
Uvicorn 0.54.0 requires Python 3.10 or newer. HTTP/2 is experimental and enabled with the additional zttp dependency plus --http zttp --http2; upgrade-based h2c and WebSockets over HTTP/2 remain unsupported in this release.
Official sources
- [1]Kludex/uvicorn — GitHub repository(2026-10-06)
- [2]Uvicorn 0.54.0 — README(2026-10-06)
- [3]Uvicorn 0.54.0 — pyproject.toml(2026-10-06)
- [4]Uvicorn 0.54.0 release(2026-10-06)
- [5]Uvicorn BSD-3-Clause license(2026-10-06)
Supplemental curator note
The key design choice is keeping the ASGI framework separate from the web server implementation. The standard extra is convenient, but production deployments should decide whether reload, WebSocket, and configuration helpers belong in the dependency set.
Try it in 3 steps
- 1
Install Uvicorn 0.54.0
Pin the reviewed release with the standard extra documented in the README. Python 3.10 or newer is required.
python -m pip install "uvicorn[standard]==0.54.0" - 2
Create a minimal ASGI application
Save the minimal ASGI application from the official README Quickstart as example.py.
cat > example.py <<'PY' async def app(scope, receive, send): assert scope['type'] == 'http' await send({'type': 'http.response.start', 'status': 200, 'headers': [(b'content-type', b'text/plain')]}) await send({'type': 'http.response.body', 'body': b'Hello, world!'}) PY - 3
Serve it with Uvicorn
Start the server, then open http://127.0.0.1:8000/ from another terminal or browser and confirm Hello, world!.
uvicorn example:app
Growth
Growth trends · Last 30 days
11,009 Stars
Trend data is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- asgi
- asyncio
- http
- http-server
- python
- Stars
- 11,009
- Forks
- 1,056
- Watchers
- 95
- Open issues
- 112
- Contributors
- 210
- Owner type
- User
- Primary language
- Python
- License
- BSD-3-Clause
- Repository last updated
- Oct 2, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Eclipse Jetty4,097 Stars
2 shared tag(s)
Serve HTTP/1, HTTP/2, HTTP/3, WebSocket, and Servlet workloads in standalone or embedded Java deployments
Java - gRPC45,365 Stars
1 shared tag(s) · 2 shared category(s)
define service contracts with Protocol Buffers and implement high-performance RPC over HTTP/2 across languages
C++ - gRPC-Go23,092 Stars
1 shared tag(s) · 2 shared category(s)
implement typed Go service RPCs over HTTP/2 with the gRPC runtime
Go - aiohttp16,569 Stars
3 shared tag(s) · 1 shared category(s) · Same language
build asyncio HTTP clients, servers, and WebSockets with one Python framework
Python - Gunicorn10,694 Stars
3 shared tag(s) · 1 shared category(s) · Same language
serve Python WSGI and ASGI applications with a prefork worker model on UNIX
Python - Hyper16,351 Stars
2 shared tag(s) · 2 shared category(s)
build HTTP/1 and HTTP/2 clients and servers with a low-level Rust library
Rust
Report incorrect information
Tell us if any listing information is incorrect or outdated.