FastAPI is a modern, high-performance Python web framework for building APIs with automatic OpenAPI documentation. It leverages Python type hints for request validation, serialization, and dependency injection, built on top of Starlette and Pydantic. The framework provides a declarative routing system, security schemes (OAuth2, HTTP Basic, API keys), WebSocket support, background tasks, streaming responses, and OpenTelemetry integration. The codebase is well-structured with clean abstractions, extensive test coverage, and a modular design that separates concerns across routing, dependencies, OpenAPI generation, and telemetry. It is actively maintained with frequent releases and a large community.
Piccolo is an async-first Python ORM and query builder targeting PostgreSQL, SQLite, and CockroachDB. It provides a declarative table definition system, automatic schema migrations, a CLI for project scaffolding, user authentication, fixture dump/load, and Pydantic model generation. The codebase is well-structured with clean abstractions (column types, query delegates, engine abstraction, migration auto-generation) and an extensive test suite covering multiple database backends. It is actively maintained with frequent releases and supports recent Python and database versions.
starlette-admin is a comprehensive admin interface library for Starlette and FastAPI applications, providing auto-generated CRUD views with search, sorting, filtering, inline editing, batch actions, import/export, and a widget-based dashboard system. It is designed as an ASGI middleware that mounts onto a Starlette app, using Jinja2 templating, itsdangerous for cookie signing, and python-multipart for file uploads. The architecture is backend-agnostic: the core defines abstract interfaces for model views, fields, filters, storage, and authentication, while optional ORM integrations (SQLAlchemy, SQLModel, Beanie, MongoEngine, Tortoise) provide concrete implementations. The library also includes a plugin and theme system, internationalization (Babel), CSRF protection, flash messages, and a full event lifecycle for audit and custom logic. It is a pure application libraryβno data research or analytics components.
This repository is the Python Functions Framework, an open-source FaaS (Function as a Service) framework developed by Google Cloud Functions team. It allows developers to write portable Python functions that can run locally, on Google Cloud Run Functions, or on Knative-based environments. The framework provides a CLI to start a local development server (Flask for WSGI or Starlette for ASGI) that invokes user-defined functions. It supports multiple function signatures: HTTP (Flask Request), CloudEvent (CloudEvents SDK), legacy background events (event/context), and typed events with custom data classes. It handles automatic event conversion between background events and CloudEvents, execution ID tracking with logging, request timeout enforcement via threading, and error handling. The architecture is modular with separate components for CLI, function registry, event conversion, execution ID, and HTTP server abstraction (Flask, Gunicorn, Starlette/Uvicorn). The codebase is well-tested with near-100% branch coverage and includes conformance tests against the Functions Framework conformance suite.
proxpi is a caching reverse-proxy server for PyPI and any PEP 503-compatible package index. It fronts one or more upstream indices, serves the Python simple repository API to pip clients in both HTML (PEP 691 v1.0) and JSON (PEP 691 v1.1) forms, and performs correct HTTP content negotiation including Accept, Accept-Encoding, and Vary headers. Index responses (project list and per-project file lists) are cached in memory with per-index TTLs; package files are cached on disk with a configurable size cap and least-frequently-used eviction. When a requested file is still downloading in the background, the server emits a 302 redirect to the upstream URL rather than blocking the client. The system is a single-process Starlette ASGI application (proxpi.server:app) designed for multi-threaded serving under Gunicorn/Hypercorn, configured entirely through environment variables (index URLs, TTLs, cache size/dir, connect/read/download timeouts, SSL verification toggle, log level). Its main target is reducing pip install latency and upstream load in CI pipelines. The implementation is a compact three-layer design: server.py handles routing, templating, and compression; _cache.py holds the caching engine (a File abstraction with FileFromHTML/FileFromJSON parsers for the dual-format simple repository API, an _IndexCache with per-package locks and a fast-path that fetches project pages without refreshing the full index, and a _FileCache with background downloads, atomic os.replace writes, and LFU eviction); _server_utils.py provides RFC-correct content-negotiation helpers built on the stdlib email header parser. The code is thread-safe by design (per-key locks, exception-storing worker threads) and memory-efficient, streaming HTML index parsing through lxml.iterparse via a custom file-like response adapter. The test suite is notably strong: parametrized integration tests against mock HTML/JSON indices covering yanked files, core-metadata hashes, gpg-sig attributes, content negotiation edge cases, cache invalidation, and 404 paths, plus end-to-end tests that run real pip downloads against live PyPI. CI runs the matrix across Python 3.8-3.14, lints with black/isort, and publishes multi-arch Docker images with fully hash-pinned dependencies. One caveat: the README is stale, documenting the pre-1.3 Flask implementation, while the code has already migrated to Starlette (listed in CHANGELOG as unreleased), and the Docker image now runs Gunicorn with an ASGI worker.
UtilMeta is a progressive Python meta-framework for building declarative APIs with integrated ORM, authentication, caching, client generation, and operations monitoring. The codebase provides a modular architecture with backend adaptors for Django, Flask, FastAPI, Sanic, Tornado, and Starlette, allowing developers to write framework-agnostic API services. Core features include declarative API classes with route mounting, request parameter extraction via decorators, automatic OpenAPI spec generation, a plugin system for cross-cutting concerns (CORS, caching, rate limiting), and a full ORM layer that compiles queries to Django/SQLAlchemy/Peewee backends. The ops module offers built-in service monitoring, logging, alerting, and supervisor connectivity for production management. Key entry points are the UtilMeta service class, the API base class, the CLI tool (meta), and the operations configuration. External dependencies include Django, databases libraries, jwcrypto, psutil, and utype for type validation.
This repository provides a deprecated Docker image for running Starlette applications with Uvicorn managed by Gunicorn. The image includes auto-tuning of worker processes based on CPU cores. However, the project is explicitly deprecated in favor of using Uvicorn with the `--workers` option directly, as the need for Gunicorn as a process manager has been eliminated by recent Uvicorn features. The repository contains Dockerfiles for Python 3.10 and 3.11 (slim and non-slim) that build upon the `tiangolo/uvicorn-gunicorn` base image, and installs Starlette. It includes a minimal example application and tests to verify the image behavior.