Comparing
The next generation HTTP client
Lightning-fast ASGI server for running async Python web apps (FastAPI, Starlette).
| Metric | httpx | uvicorn |
|---|---|---|
| Ecosystem | Python | Python |
| Difficulty | Intermediate | Beginner ✓ |
| Weekly downloads | 119.1M↑ | 7.2M |
| Latest version | v0.28.1 | v0.30.6 |
| Recipes | 2 | 2 |
httpx only
Shared
uvicorn only
Use httpx when building FastAPI or asyncio applications that call external APIs. Also reach for it when you need HTTP/2 support, a requests-compatible API with async support, or a single library that works in both sync and async contexts.
Running any ASGI framework: FastAPI, Starlette, Django Channels, Litestar. Development server with hot reload. Production with Gunicorn+uvicorn workers.
For simple synchronous scripts where you already use requests, there's little reason to switch — requests has a larger ecosystem of auth libraries and middleware. For high-volume async scraping at scale, aiohttp's lower-level control may be more efficient.
WSGI apps (Flask, Django without Channels) — use gunicorn with sync workers instead.
httpx
uvicorn