{"repo":"kennethreitz/responder","free":true,"listed":false,"github":"https://github.com/kennethreitz/responder","clone":"git clone https://github.com/kennethreitz/responder.git","description":"A familiar HTTP Service Framework for Python.","language":"Python","stars":3621,"topics":["http-framework","python","flask","falcon","graphql","microservices","web-services"],"license":"Apache-2.0","category":"api-integrations-sdks","readme_excerpt":"Responder Web services for humans. A familiar HTTP Service Framework for Python, powered by Starlette. Documentation · Quickstart · Tour · Examples · Changelog Open http://127.0.0.1:5042/hello/world . That's it. Responder is the friendly request/response shape of Flask and Falcon, brought to ASGI with Starlette underneath. Every view receives a req and a resp . Read from one, write to the other. Sync and async views both work. Why Responder? Responder is for people who like small, expressive web frameworks with real batteries included. You want Responder gives you --- --- A simple mental model def view(req, resp): ... with mutable request and response objects Modern Python I/O ASGI, Starlette routing, uvicorn by default, optional Granian Real API contracts Typed request/response validation and generated OpenAPI 3.0/3.1 Live typed data Validated SSE and NDJSON with streaming generated clients Pleasant responses resp.text , resp.html , resp.media , resp.file() , resp.problem() Production ergonomics request IDs, structured logging, rate limiting, health checks, metrics Safer defaults Problem Details errors, capped request bodies, secure session guidance Escape hatches mount Flask, Django, WSGI, ASGI apps, or plain routers under one API The Shape Routes look like Python strings, because they are meant to be read. Write the response you mean: Read requests without ceremony: Return values work too, when that style feels right: A Real Endpoint Responder can stay tiny, but it does no","default_branch":null,"files":null,"tree":[],"storefront":"/r/kennethreitz","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/kennethreitz/responder/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}