// the take
Starlette is the lightweight ASGI toolkit underneath FastAPI, used either as a minimal web framework on its own or cherry-picked piece by piece (routing, responses, middleware) in other ASGI projects. Good fit for people who want HTTP/WebSocket primitives without a heavy framework on top.
Clean separation between components (routing, requests, responses, middleware) so you can import just what you need instead of buying into a whole framework. 100% type annotated with a small, well-chosen set of hard dependencies (just anyio). Solid test suite with actual coverage enforcement, and it's been battle-tested for years as FastAPI's foundation. Benchmark suite in-repo shows they actually care about regressions, not just features.
Error messages and debugging story are thinner than Flask/Django - you're often reading source to understand routing edge cases. BaseHTTPMiddleware has known footguns around streaming responses and background tasks that trip people up and aren't obvious from the docs. No built-in dependency injection or request validation, so you'll hand-roll a lot that FastAPI gives you for free - fine if you know that going in, surprising if you don't. Session middleware is cookie-based only, nothing for server-side sessions out of the box.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →