# kennethreitz/responder

A familiar HTTP Service Framework for Python.

Repository: https://github.com/kennethreitz/responder
Canonical: https://ross.abutalabs.com/products/kennethreitz-responder
Homepage: https://responder.kennethreitz.org/
Language: Python
License: Apache-2.0
License Family: permissive
Topics: http-framework, python, flask, falcon, graphql, microservices, web-services
Last push: 2026-08-01T03:13:05+00:00

## Health v2 (maintenance only)
Score: 91/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 95, release rhythm 81, longevity 100
- inputs: {"age_days": 2885, "days_push": 32, "days_rel": 50, "gap_med": 0, "n_releases_24m": 70}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3620, forks 217 (observed 2026-08-28T04:08:11.847057+00:00)

## What it is
Responder is a Python HTTP service framework with a Flask/Falcon-style request-response model, built on Starlette and ASGI. It bundles batteries-included features like OpenAPI generation, Pydantic validation, WebSockets, typed SSE/NDJSON streams, sessions, and rate limiting.

## Use cases
- build a REST API in Python
- create a JSON web service with OpenAPI docs
- serve a small web app with Flask-like routing on ASGI
- stream typed SSE or NDJSON events to clients
- add rate limiting and health checks to a Python microservice
- mount Flask or Django apps under one ASGI API
- handle WebSockets in a Python web service

## When to choose
- you want Flask's familiar req/resp style with modern async ASGI under the hood
- you need OpenAPI schema generation and Swagger UI from type hints
- you want a batteries-included framework with sessions, rate limiting, and content negotiation in one import
- you need typed streaming responses (SSE/NDJSON) with generated clients

## When to avoid
- your team is standardized on FastAPI and its dependency-injection ecosystem
- you need the largest plugin ecosystem and community - Flask or Django are far bigger
- you want a minimal microframework without built-in conventions
- you rely on niche third-party extensions built specifically for Flask

## Facets
- artifact type: framework
- maturity: active
- function: web-framework, api-framework, http-server, routing, middleware, websocket, rate-limiting, serialization
- domain: web-development, backend, apis, microservices
- platform: python, cross-platform
- tags: asgi, starlette, openapi, flask-like, falcon, pydantic, content-negotiation, sse, ndjson, uvicorn, web-server

## Member repositories
- kennethreitz/responder (main) score 91

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:11.847057+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:31:58.710578+00:00, confidence not recorded.
  - readme: https://github.com/kennethreitz/responder (fetched 2026-08-28T04:08:11.847057+00:00, sha 1417a055012e)
  - homepage: https://responder.kennethreitz.org/ (fetched 2026-08-29T09:26:46.167651+00:00, sha fd848126bf1f)
  - site_page: https://responder.kennethreitz.org/quickstart.html (fetched 2026-08-29T09:26:46.176960+00:00, sha 5cb9b298bd5e)
  - registry_pypi: https://pypi.org/pypi/responder/json (fetched 2026-08-29T09:26:46.191471+00:00, sha f44665b3779c)
  - site_page: https://responder.kennethreitz.org/tour.html (fetched 2026-08-29T09:26:46.179369+00:00, sha e24ecd821c1a)
  - site_page: https://responder.kennethreitz.org/tutorial-sqlalchemy.html (fetched 2026-08-29T09:26:46.183684+00:00, sha 415965b510fa)
  - site_page: https://responder.kennethreitz.org/changes.html (fetched 2026-08-29T09:26:46.185888+00:00, sha 39d11d1f4023)
- Data as of 2026-08-30T08:39:29.467469+00:00.
