OSS TanbouSign in with GitHub

serve ASGI applications over HTTP/1.1, HTTP/2, and WebSockets with a Python web server

OSS scale score 267.1OSS health 100
About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
11,009
Primary language
Python
License
BSD-3-Clause
Repository last updated
Oct 2, 2026
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.

Sources: [2][3]

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.

Sources: [3][4]

Official sources

  1. [1]Kludex/uvicorn — GitHub repository(2026-10-06)
  2. [2]Uvicorn 0.54.0 — README(2026-10-06)
  3. [3]Uvicorn 0.54.0 — pyproject.toml(2026-10-06)
  4. [4]Uvicorn 0.54.0 release(2026-10-06)
  5. [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. 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. 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. 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
Check the official README

Growth

Growth trends · Last 30 days

11,009 Stars

Trend data is still being collected.

Built with

Categories and tags

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
Repository last updated
Oct 2, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?