Starlette

A lightweight ASGI framework/toolkit for building async web services and apps in Python

Framework
PyPI
v1.9.0
12,684 stars
BSD 3-Clause License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
94 /100 Excellent
Development Activity 100
Maintenance 100
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
78 /100 Good
Architecture 85
Code Quality 85
Innovation 70
Learning Curve 72

Starlette is a lightweight ASGI framework and toolkit for building high-performance async web services in Python. It provides the core primitives every ASGI app needs — routing, request/response objects, middleware, WebSockets, background tasks, and a test client — without imposing a large amount of structure on top, making it usable either directly or as the foundation other frameworks build on.

FastAPI is the most visible consumer of Starlette, using it for all of the underlying HTTP/WebSocket handling while layering in validation and OpenAPI generation; but Starlette itself is designed to be used standalone for services that need async performance without a full-featured framework’s opinions.

What You Get

  • ASGI-native routing with path parameters, mounting, and WebSocket routes
  • Request/Response objects, form/multipart parsing, and streaming responses
  • A composable middleware stack (CORS, GZip, sessions, trusted host, etc.)
  • Native async WebSocket support and background task scheduling
  • A TestClient built on httpx for synchronous-style testing of async apps
  • Static file serving and Jinja2 templating integration

Common Use Cases

  • Building lightweight async microservices or internal APIs without a heavier framework
  • Serving as the ASGI foundation underneath higher-level frameworks (as FastAPI does)
  • Building real-time services that need native WebSocket routing and handling
  • Adding async middleware (CORS, auth, sessions) to an existing ASGI application

Under The Hood

Architecture - applications.py assembles a Starlette app from a middleware stack (middleware/), a Router (routing.py) that dispatches ASGI scope/receive/send calls to endpoint callables or classes (endpoints.py), with request parsing (requests.py, formparsers.py) and response construction (responses.py) as thin, composable layers around the raw ASGI interface. Tech Stack - Pure-Python, dependency-light (optional extras for httpx, jinja2, python-multipart, itsdangerous depending on features used), built and packaged via modern pyproject.toml/uv tooling, deployed under any ASGI server (Uvicorn, Hypercorn, Daphne). Code Quality - A large, well-organized tests/ directory (26+ files) covers routing, middleware, WebSockets, static files, and exception handling individually, and the project enforces type checking (py.typed) and consistent style across a 300+ contributor codebase. API Design - The Starlette(routes=[...]) constructor and decorator-free route definitions keep the surface small and explicit; because it’s intentionally low-level, using it directly requires more boilerplate than a batteries-included framework, but that same minimalism is what makes it easy to build other frameworks on top of.

Used by 21 apps in this directory

Rust
60%
Apache 2.0

Magnitude

AI Development · Developer Tools

7,313

An open source inference engine that profiles your hardware, recommends the best local models, and tunes them for the coding agent you already use.

View details
79
Repo Health
83
Technical
71
Dependency
Built with
Rust 60%
TypeScript 25%
Updated 1 weeks ago
Python
62%
Apache 2.0

marimo

Data Engineering · Developer Tools

23,309

A reactive Python notebook that eliminates hidden state, runs reproducibly, and deploys as a web app or script — stored as pure Python, built for the AI era.

View details
90
Repo Health
91
Technical
65
Dependency
Built with
Python 62%
TypeScript 37%
Updated 1 weeks ago
Python
58%
Apache 2.0

MLflow

AI Development · Monitoring

28,512

The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.

View details
96
Repo Health
86
Technical
67
Dependency
Built with
Python 58%
TypeScript 35%
Updated 1 weeks ago
TypeScript
92%
Other

OpenHands

AI Code Assistants · AI Development

91,695

The self-hosted developer control center for running AI coding agents — locally, in Docker, on VMs, or across cloud backends — with automation workflows for GitHub, Slack, and more.

View details
91
Repo Health
82
Technical
67
Dependency
Built with
TypeScript 92%
Updated 1 weeks ago
Python
39%
Apache 2.0

OpenSandbox

Developer Tools · Security

16,116

Secure, fast, and extensible sandbox runtime for AI agents with multi-language SDKs and Docker/Kubernetes runtimes.

View details
85
Repo Health
81
Technical
70
Dependency
Built with
Python 39%
Go 36%
Updated 1 weeks ago
Python
49%
Other

Arize Phoenix

Analytics · Devops · Monitoring

11,976

Open-source AI observability platform for tracing, evaluating, and debugging LLM applications with built-in intelligence and MCP support.

View details
92
Repo Health
88
Technical
67
Dependency
Built with
Python 49%
TypeScript 43%
Updated 1 weeks ago
TypeScript
67%
MIT

Scalar

Developer Tools

16,313

Beautiful, interactive OpenAPI documentation with a built-in offline-first API client and multi-language code generation — all in one open-source platform.

View details
90
Repo Health
89
Technical
65
Dependency
Built with
TypeScript 67%
Vue 29%
Updated 1 weeks ago
Python
64%
AGPL 3.0

Shadowbroker

Analytics · Monitoring · Security

11,358

Self-hosted OSINT dashboard that fuses 60+ live intelligence feeds — flight tracking, ship AIS, satellites, CCTV, seismic and radio networks — into one real-time map, with an agent-ready command channel for AI co-analysts.

View details
85
Repo Health
83
Technical
71
Dependency
Built with
Python 64%
TypeScript 32%
Updated 1 weeks ago
Python
79%
AGPL 3.0

Skyvern

AI Agents · Automation

23,257

Skyvern (YC S2023) automates browser-based workflows by pairing LLMs with computer vision, letting agents click, fill, and extract data on sites they've never seen, without brittle XPath selectors that break on every layout change.

View details
89
Repo Health
82
Technical
70
Dependency
Built with
Python 79%
TypeScript 19%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers