Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
[v3.2.0] - 2026-03-22¶
Added¶
Pydantic auto-validation:
request_modelvalidates input, returns 422 on failurePydantic auto-serialization:
response_modelstrips extra fields from responsesServer-Sent Events:
@resp.ssefor real-time streamingresp.stream_file()for streaming large files without loading into memory@api.after_request()hooksapi.group("/prefix")for route groups and API versioningapi.graphql("/path", schema=schema)one-liner GraphQL setupapi = responder.API(request_id=True)for automatic request ID generationBuilt-in rate limiter:
RateLimiter(requests=100, period=60).install(api)MessagePack format support:
await req.media("msgpack")req.is_json,req.path_params,req.clientpropertiesapi.exception_handler()decorator for custom error handlingLifespan context manager support
uuidandpathroute convertorsPEP 561
py.typedmarkerPydantic support for OpenAPI schema generation
Changed¶
Dependencies flattened:
pip install respondergets everythingCore deps reduced to starlette + uvicorn
TestClient lazy-loaded (no httpx import in production)
Before-request hooks can short-circuit by setting status code
Removed poethepoet task runner
Fixed¶
Multipart parser losing headers when parts have multiple headers
url_for()with typed route params ({id:int})resp.bodyencoding crash on bytes contentGraphQL text query missing
awaitStreaming responses not sending Content-Type headers
Python 3.9 compatibility for union type syntax
v3.0.0 - 2026-03-22¶
Added¶
Platform: Added support for Python 3.10 - Python 3.13
CLI:
responder runnow also accepts a filesystem path on its<target>argument, enabling usage on single-file applications.CLI:
responder runnow also accepts URLs.
Changed¶
Platform: Minimum Python version is now 3.9 (dropped 3.6, 3.7, 3.8)
Dependencies: Dramatically reduced core dependency count (10 → 5)
Removed
requests,requests-toolbelt,rfc3986,whitenoiseMoved
apispecandmarshmallowtoopenapioptional extraReplaced
rfc3986with stdliburllib.parseReplaced
requests-toolbeltmultipart decoder withpython-multipartReplaced deprecated
starlette.middleware.wsgiwitha2wsgiSwitched from WhiteNoise to ServeStatic
Dependencies: Pinned
starlette[full]>=0.40(was unpinned)GraphQL: Upgraded to
graphene>=3andgraphql-core>=3.1(fromgraphene<3andgraphql-server-core, which is unmaintained)GraphQL: Updated GraphiQL UI from 0.12.0 (2018) to 3.0.6 with React 18
Extensions: All of CLI-, GraphQL-, and OpenAPI-Support modules are extensions now, found within the
responder.extmodule namespace.Packaging: Migrated from
setup.pyto declarativepyproject.toml
Removed¶
Platform: Removed support for EOL Python 3.6, 3.7, 3.8
Status codes: Removed deprecated
resume_incompleteandresumealiases for HTTP 308 (marked for removal in 3.0)CLI:
responder run --buildceased to exist
Fixed¶
Routing: Fixed dispatching
static_route=Noneon Windowsuvicorn:
--debugnow maps to uvicorn’slog_level = "debug"Tests: Fixed deprecated httpx TestClient usage
v2.0.5 - 2019-12-15¶
Added¶
Update requirements to support python 3.8
v2.0.4 - 2019-11-19¶
Fixed¶
Fix static app resolving
v2.0.3 - 2019-09-20¶
Fixed¶
Fix template conflicts
v2.0.2 - 2019-09-20¶
Fixed¶
Fix template conflicts
v2.0.1 - 2019-09-20¶
Fixed¶
Fix template import
v2.0.0 - 2019-09-19¶
Changed¶
Refactor Router and Schema
v1.3.2 - 2019-08-15¶
Added¶
ASGI 3 support
CI tests for python 3.8-dev
Now requests have
statea mapping object
Deprecated¶
ASGI 2
v1.3.1 - 2019-04-28¶
Added¶
Route params Converters
Add search for documentation pages
Changed¶
Bump dependencies
v1.3.0 - 2019-02-22¶
Fixed¶
Versioning issue
Multiple cookies.
Whitenoise returns not found.
Other bugfixes.
Added¶
Stream support via
resp.stream.Cookie directives via
resp.set_cookie.Add
resp.htmlto send HTML.Other improvements.
v1.1.3 - 2019-01-12¶
Changed¶
Refactor
_route_for
Fixed¶
Resolve startup/shutdwown events
v1.2.0 - 2018-12-29¶
Added¶
Documentations
Changed¶
Use Starlette’s LifeSpan middleware
Update denpendencies
Fixed¶
Fix route.is_class_based
Fix test_500
Typos
v1.1.2 - 2018-11-11¶
Fixed¶
Minor fixes for Open API
Typos
v1.1.1 - 2018-10-29¶
Changed¶
Run sync views in a threadpoolexecutor.
v1.1.0 - 2018-10-27¶
Added¶
Support for
before_request.
v1.0.5- 2018-10-27¶
Fixed¶
Fix sessions.
v1.0.4 - 2018-10-27¶
Fixed¶
Potential bufix for cookies.
v1.0.3 - 2018-10-27¶
Fixed¶
Bugfix for redirects.
v1.0.2 - 2018-10-27¶
Changed¶
Improvement for static file hosting.
v1.0.1 - 2018-10-26¶
Changed¶
Improve cors configuration settings.
v1.0.0 - 2018-10-26¶
Changed¶
Move GraphQL support into a built-in plugin.
v0.3.3 - 2018-10-25¶
Added¶
CORS support
Changed¶
Improved exceptions.
v0.3.2 - 2018-10-25¶
Changed¶
Subtle improvements.
v0.3.1 - 2018-10-24¶
Fixed¶
Packaging fix.
v0.3.0 - 2018-10-24¶
Changed¶
Interactive Documentation endpoint.
Minor improvements.
v0.2.3 - 2018-10-24¶
Changed¶
Overall improvements.
v0.2.2 - 2018-10-23¶
Added¶
Show traceback info when background tasks raise exceptions.
v0.2.1 - 2018-10-23¶
Added¶
api.requests.
v0.2.0 - 2018-10-22¶
Added¶
WebSocket support.
v0.1.6 - 2018-10-20¶
Added¶
500 support.
v0.1.5 - 2018-10-20¶
Added¶
File upload support
Changed¶
Improvements to sequential media reading.
v0.1.4 - 2018-10-19¶
Fixed¶
Stability.
v0.1.3 - 2018-10-18¶
Added¶
Sessions support.
v0.1.2 - 2018-10-18¶
Added¶
Cookies support.
v0.1.1 - 2018-10-17¶
Changed¶
Default routes.
v0.1.0 - 2018-10-17¶
Added¶
Prototype of static application support.
v0.0.10 - 2018-10-17¶
Fixed¶
Bugfix for async class-based views.
v0.0.9 - 2018-10-17¶
Fixed¶
Bugfix for async class-based views.
v0.0.8 - 2018-10-17¶
Added¶
GraphiQL Support.
Changed¶
Improvement to route selection.
v0.0.7 - 2018-10-16¶
Changed¶
Immutable Request object.
v0.0.6 - 2018-10-16¶
Added¶
Ability to mount WSGI apps.
Supply content-type when serving up the schema.
v0.0.5 - 2018-10-15¶
Added¶
OpenAPI Schema support.
Safe load/dump yaml.
v0.0.4 - 2018-10-15¶
Added¶
Asynchronous support for data uploads.
Fixed¶
Bug fixes.
v0.0.3 - 2018-10-13¶
Fixed¶
Bug fixes.
v0.0.2 - 2018-10-13¶
Changed¶
Switch to ASGI/Starlette.
v0.0.1 - 2018-10-12¶
Added¶
Conception!