FastAPI is a modern Python web framework that makes it easy to build APIs quickly and efficiently, with automatic documentation and strong type support. Combined with uv
β a lightweight developer tool that wraps Python virtual environments and package management β it becomes even simpler to set up and maintain projects.
In this post, you’ll learn:
- What FastAPI is
- What
uv
is - How to set up and run a FastAPI project using
uv
anduvicorn
- Where to find a full example on GitHub
What is FastAPI?
FastAPI is a modern, high-performance web framework for building APIs with Python 3.7+ based on standard Python type hints. Itβs built on top of Starlette for web handling and Pydantic for data validation.
Why FastAPI?
- π Super-fast performance (comparable to NodeJS and Go)
- π Automatic interactive API docs (Swagger and ReDoc)
- π§ Built-in validation using Python type hints
- π Easy integration of authentication and dependency injection
What is uv
?
uv
is a fast and modern Python package manager developed by Astral. It wraps around virtual environments and provides an easy command-line interface for installing packages, managing dependencies, and isolating your Python projects.
You can think of it as a faster and more intuitive alternative to pip
, venv
, and pip-tools
β all in one.
Setting Up FastAPI with uv
Hereβs a quick guide to spin up a FastAPI app using uv
.
1. Create and activate your environment
uv venv
source .venv/bin/activate
2. Install FastAPI and a web server
uv pip install fastapi uvicorn
3. Create your app
Make a new file:
touch main.py
Edit main.py
and add this code to your simple app:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI + uv!"}
4. Run your server
Start the development server using uvicorn
:
uvicorn main:app --reload
Visit http://127.0.0.1:8000 to see the response, and check out the auto-generated docs at http://127.0.0.1:8000/docs or redoc documentation under http://127.0.0.1:8000/redoc.
Managing Packages
Install additional packages:
uv pip install somepackage anotherpackage
Freeze your dependencies:
uv pip freeze > requirements.txt
Reactivate if you run into ‘ModuleNotFoundError’ with:
source .venv/bin/activate
Reinstall from requirements.txt
later with:
uv pip install -r requirements.txt
Full Example
You can find the full example project on GitHub here:
π GitHub Repository
FastAPI + uv
is a powerful combo for building modern, fast, and maintainable APIs with minimal setup. Whether youβre prototyping or building production-ready services, this stack gets you moving quickly.