What Starlette Does
- ASGI — fully async, works with uvicorn, hypercorn, daphne
- Routing — path parameters, Mount for sub-apps
- Middleware — CORS, GZip, HTTPS redirect, Trusted Host
- WebSocket — native support
- Background tasks — fire-and-forget after response
- Streaming — StreamingResponse for large files
- Static files — StaticFiles mount
- Test client — httpx-based test client
- Event handlers — startup/shutdown lifecycle
Comparison
| Framework | Level | Validation |
|---|---|---|
| Starlette | Low-level ASGI | Manual |
| FastAPI | High-level (on Starlette) | Pydantic |
| Litestar | High-level ASGI | msgspec/Pydantic |
| Django | Full-stack WSGI/ASGI | Django forms |
FAQ
Q: Starlette vs FastAPI? A: FastAPI is essentially Starlette + Pydantic + auto-generated OpenAPI. Choose Starlette if you want more control or a lighter footprint; choose FastAPI if you want automatic docs and validation.
Sources
- Docs: https://www.starlette.io
- GitHub: https://github.com/Kludex/starlette
- License: BSD 3-Clause