freshcrate
Home > Frameworks > cadwyn

cadwyn

Production-ready community-driven modern Stripe-like API versioning in FastAPI

Description

# Cadwyn Production-ready community-driven modern [Stripe-like](https://stripe.com/blog/api-versioning) API versioning in FastAPI --- <p align="center"> <a href="https://github.com/zmievsa/cadwyn/actions/workflows/ci.yaml?branch=main&event=push" target="_blank"> <img src="https://github.com/zmievsa/cadwyn/actions/workflows/ci.yaml/badge.svg?branch=main&event=push" alt="Test"> </a> <a href="https://codecov.io/gh/zmievsa/cadwyn" target="_blank"> <img src="https://img.shields.io/codecov/c/github/zmievsa/cadwyn?color=%2334D058&logo=codecov" alt="Coverage"> </a> <a href="https://pypi.org/project/cadwyn/" target="_blank"> <img alt="PyPI" src="https://img.shields.io/pypi/v/cadwyn?color=%2334D058&logo=pypi&label=PyPI" alt="Package version"> </a> <a href="https://pypi.org/project/cadwyn/" target="_blank"> <img src="https://img.shields.io/pypi/pyversions/cadwyn?color=%2334D058&logo=python" alt="Supported Python versions"> </a> <a href="https://discord.gg/yRmcWF7rxE" target="_blank"> <img alt="Discord" src="https://img.shields.io/discord/1183145640407076864?color=%2334D058&logo=discord"> </a> </p> ## Who is this for? Cadwyn allows you to maintain the implementation just for your newest API version and get all the older versions generated automatically. You keep API backward compatibility encapsulated in small and independent "version change" modules while your business logic stays simple and knows nothing about versioning. This [approach](https://docs.cadwyn.dev/theory/how_we_got_here/#ii-migration-based-response-building) may be useful if you want to: 1. Support many API versions for a long time 2. Have features and bugfixes automatically backported to older API versions Whether you are a newbie in API versioning, a pro looking for a sophisticated tool, an experimenter looking to build a similar framework, or even someone who just wants to learn about all approaches to API versioning -- Cadwyn has the functionality, theory, and documentation to cover all the mentioned use cases. ## Get started The [documentation](https://docs.cadwyn.dev) has everything you need to succeed. ## Sponsors These are our gorgeous sponsors. They are using Cadwyn and are sponsoring it through various means. Contact [me](https://github.com/zmievsa) if you would like to become one, too!

Release History

VersionChangesUrgencyDate
6.2.2Imported from PyPI (6.2.2)Low4/21/2026
6.2.1## What's Changed * Bump requests from 2.32.5 to 2.33.0 in the uv group across 1 directory by @dependabot[bot] in https://github.com/zmievsa/cadwyn/pull/362 * improve documentation-18 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/363 * Bump pytest from 8.4.2 to 9.0.3 in the uv group across 1 directory by @dependabot[bot] in https://github.com/zmievsa/cadwyn/pull/364 * Bump python-multipart from 0.0.22 to 0.0.26 in the uv group across 1 directory by @dependabot[bot] in https://githuHigh4/20/2026
6.2.0- Add support for overriding static assets for swagger/redoc **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.1.1...6.2.0Medium3/29/2026
6.1.1## What's Changed * Fix compatibility with starlette==1.0.0 * improve documentation-17 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/360 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.1.0...6.1.1Medium3/23/2026
6.1.0## What's Changed * Add request.form data migration support by @zmievsa in https://github.com/zmievsa/cadwyn/pull/359 * Fix false RouterPathParamsModifiedError when renaming path-versioned endpoints by @zmievsa in https://github.com/zmievsa/cadwyn/pull/358 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.0.4...6.1.0Low3/22/2026
6.0.4## What's Changed * Resolve `'__getitem__' requires a 'typing.Union'` error by @ulgens in https://github.com/zmievsa/cadwyn/pull/336 * Adopt Python 3.14 related http.cookies changes by @ulgens in https://github.com/zmievsa/cadwyn/pull/338 * Adopt Python 3.14 related union handling changes by @ulgens in https://github.com/zmievsa/cadwyn/pull/337 * Replace the legacy ruff hook id by @ulgens in https://github.com/zmievsa/cadwyn/pull/340 * Remove duplicate pygrep-hooks by @ulgens in https://gitLow3/14/2026
6.0.3## What's Changed * Tolerate FastAPI 0.128+ utils removal, restrict fastapi >= 0.128.6 by @shahar1 in https://github.com/zmievsa/cadwyn/pull/327 ## New Contributors * @shahar1 made their first contribution in https://github.com/zmievsa/cadwyn/pull/327 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.0.2...6.0.3Low2/15/2026
6.0.2## What's Changed * Bump urllib3 from 2.6.2 to 2.6.3 in the uv group across 1 directory by @dependabot[bot] in https://github.com/zmievsa/cadwyn/pull/323 * improve documentation-15 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/325 * Update setup-python-uv action dependencies by @ulgens in https://github.com/zmievsa/cadwyn/pull/328 * Update uv version in git hooks by @ulgens in https://github.com/zmievsa/cadwyn/pull/333 * Update GHA dependencies by @ulgens in https://github.com/zmiLow2/13/2026
6.0.1## What's Changed * Improve documentation 12 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/318 * improve documentation-13 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/319 * improve documentation-14 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/320 * Fix AttributeError when using callable class dependencies with future annotations by @zmievsa in https://github.com/zmievsa/cadwyn/pull/322 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.0.0...Low1/23/2026
6.0.0## What's Changed * Add support for fastapi>=0.128.0 by @zmievsa in https://github.com/zmievsa/cadwyn/pull/317 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.0.0.rc1...6.0.0Low12/28/2025
6.0.0.rc1**Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.6.2...6.0.0.rc1Low12/28/2025
5.6.2## What's Changed * improve documentation-9 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/307 * improve documentation-10 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/308 * improve documentation-11 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/313 * Add support for FastAPI>=0.126.0 by @zmievsa in https://github.com/zmievsa/cadwyn/pull/315 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.6.1...5.6.2Low12/24/2025
5.5.1Fix the OpenAPI schema bug in airflow **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.5.0...5.5.1Low12/18/2025
5.4.6Fix the OpenAPI schema bug in airflow **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.4.5...5.4.6Low12/18/2025
5.6.1## What's Changed * Add support for generics by @EgorOnishchuk in https://github.com/zmievsa/cadwyn/pull/303 * Add support for newest FastAPI by @zmievsa in https://github.com/zmievsa/cadwyn/pull/306 ## New Contributors * @EgorOnishchuk made their first contribution in https://github.com/zmievsa/cadwyn/pull/303 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.6.0...5.6.1Low11/9/2025
5.6.0## What's Changed * improve documentation-8 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/299 * enhance: implement json_schema_extra support for .had() (#112) by @csemanish12 in https://github.com/zmievsa/cadwyn/pull/298 ## New Contributors * @csemanish12 made their first contribution in https://github.com/zmievsa/cadwyn/pull/298 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.5.0...5.6.0Low10/12/2025
5.5.0Fix the rest of the issues from fastapi==0.119.0 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.4.5...5.5.0Low10/12/2025
5.4.5## What's Changed * Fix GenerateJsonSchema getting removed in latest fastapi release * improved text in docs by @Shigerman in https://github.com/zmievsa/cadwyn/pull/288 * improve_documentation_4 by @Shigerman in https://github.com/zmievsa/cadwyn/pull/293 * the bot is not maintained and the website is down by @Shigerman in https://github.com/zmievsa/cadwyn/pull/294 * improve documentation by @Shigerman in https://github.com/zmievsa/cadwyn/pull/295 * improve documentation-6 by @Shigerman in Low10/12/2025
5.4.4## What's Changed * Add support for classvars by @zmievsa in https://github.com/zmievsa/cadwyn/pull/292 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.4.3...5.4.4Low7/13/2025
5.4.3## What's Changed * Issue 97 add contributors by @Shigerman in https://github.com/zmievsa/cadwyn/pull/287 * Fix reported vulnerability by @zmievsa in https://github.com/zmievsa/cadwyn/pull/290 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.4.2...5.4.3Low7/5/2025
5.4.2## What's Changed * improve text in docs by @Shigerman in https://github.com/zmievsa/cadwyn/pull/285 * Add support for computed property by @zmievsa in https://github.com/zmievsa/cadwyn/pull/286 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.4.1...5.4.2Low6/11/2025
5.4.1## What's Changed * improve_text_in_readme by @Shigerman in https://github.com/zmievsa/cadwyn/pull/276 * Use pydantic.Field in remove field doc by @uranusjr in https://github.com/zmievsa/cadwyn/pull/280 * Add support for pydantic>=3.12.0 FieldInfo refactoring by @zmievsa in https://github.com/zmievsa/cadwyn/pull/281 * Fix typing_extensions==3.14.0 errors on import by @zmievsa in https://github.com/zmievsa/cadwyn/pull/284 ## New Contributors * @Shigerman made their first contribution in hLow6/3/2025
5.3.3## What's Changed * Add project favicon to docs by @c4chula in https://github.com/zmievsa/cadwyn/pull/275 * Fix pypi badge ## New Contributors * @c4chula made their first contribution in https://github.com/zmievsa/cadwyn/pull/275 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.3.2...5.3.3Low4/11/2025
5.3.2- Add support for `pydantic_settings.BaseSettings` in dependencies by @zmievsa (#250) **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.3.1...5.3.2Low4/5/2025
5.3.1- Fix invalid content-length header with custom exception handlers (#273) by @zmievsa **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.3.0...5.3.1Low4/5/2025
5.3.0## What's Changed * Add the ability to customize the title and description of the api version parameter by @zmievsa in https://github.com/zmievsa/cadwyn/pull/274 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.2.2...5.3.0Low4/5/2025
5.2.2## What's Changed * Fix invalid route path used in by path migrations by @zmievsa in https://github.com/zmievsa/cadwyn/pull/271 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.2.1...5.2.2Low4/1/2025
5.2.1## What's Changed ### Fixed * `/docs` return 404 after adding api_version_default_value #268 by @zmievsa in https://github.com/zmievsa/cadwyn/pull/269 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.2.0...5.2.1Low3/30/2025
5.2.0## What's Changed * Fix two remaining uses of the old-style of declaring version changes by @ashb in https://github.com/zmievsa/cadwyn/pull/266 * Remove issubclass dependency **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.1.4...5.2.0Low3/27/2025
5.1.4## Fixed - a bug where a custom HTTP exception was not being copied correctly so its unique properties are ignored **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.1.3...5.1.4Low3/25/2025
5.1.3## What's Changed * `__doc__` attribute is now copied from the original enum to the generated enum * Python 3.12 type aliases and their typing_extensions backports are now supported (including `pydantic.JsonValue` and other `typing_extensions.TypeAliasType` instances) * The bug when solve_dependencies error on the migration of a request to the latest version responds with a non-json serializable error and cadwyn showed a failed to serialize error instead of the actual error * Updated minimumLow3/21/2025
5.1.2## What's Changed * Fix generator dependencies not being converted correctly and add cadwyn.current_dependency_solver by @zmievsa in https://github.com/zmievsa/cadwyn/pull/259 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.1.1...5.1.2Low3/18/2025
5.1.1## What's Changed * Copy field annotations when building versioned models with future annotations by @ashb in https://github.com/zmievsa/cadwyn/pull/257 ## New Contributors * @ashb made their first contribution in https://github.com/zmievsa/cadwyn/pull/257 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.1.0...5.1.1Low3/17/2025
5.1.0## What's Changed * Fix coverage by @zmievsa in https://github.com/zmievsa/cadwyn/pull/253 * Add python 3.9 support by @zmievsa in https://github.com/zmievsa/cadwyn/pull/254 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.0.0...5.1.0Low3/8/2025
5.1.0a1## What's Changed * Fix coverage by @zmievsa in https://github.com/zmievsa/cadwyn/pull/253 * Add python 3.9 support by @zmievsa in https://github.com/zmievsa/cadwyn/pull/254 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/5.0.0...5.1.0a1Low3/8/2025
5.0.0## What's Changed * #251 add support for string versions and versions as URL path prefixes by @zmievsa in https://github.com/zmievsa/cadwyn/pull/252 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.6.0...5.0.0Low3/8/2025
5.0.0a1## What's Changed * #251 : add support for string versions and versions as URL path prefixes by @zmievsa in https://github.com/zmievsa/cadwyn/pull/252 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.6.0...5.0.0a1Low3/8/2025
4.6.0## What's Changed * Fix: Route params (query or post) with future annotations gives "not fully defined" error #246 by @zmievsa in https://github.com/zmievsa/cadwyn/pull/249 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.5.0...4.6.0Low2/23/2025
4.6.0-alpha.1**Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.5.0...4.6.0-alpha.1Low2/15/2025
4.5.0## What's Changed * Add check usage argument to converters by @zmievsa in https://github.com/zmievsa/cadwyn/pull/245 * Introduce tox by @kurtmckee in https://github.com/zmievsa/cadwyn/pull/244 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.4.5...4.5.0Low1/29/2025
4.4.5## What's Changed * Fix most typos by @kurtmckee in https://github.com/zmievsa/cadwyn/pull/231 * Update `actions/(upload|download)-artifact` to v4 by @kurtmckee in https://github.com/zmievsa/cadwyn/pull/235 * Update old action versions by @kurtmckee in https://github.com/zmievsa/cadwyn/pull/236 * Fix a key name change for `actions/download-artifact@v4` by @kurtmckee in https://github.com/zmievsa/cadwyn/pull/238 * Configure pytest to ignore known `DeprecationWarning`s by @kurtmckee in https:Low12/27/2024
4.4.3## What's Changed * Update packages by @zmievsa in https://github.com/zmievsa/cadwyn/pull/228 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.4.2...4.4.3Low11/6/2024
4.4.2## What's Changed * Fix dependency overrides for class instances by @zmievsa in https://github.com/zmievsa/cadwyn/pull/227 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.4.1...4.4.2Low11/1/2024
4.4.1## What's Changed * Add python 3.13 to CI and pypi by @zmievsa in https://github.com/zmievsa/cadwyn/pull/225 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.4.0...4.4.1Low10/25/2024
3.15.9## What's Changed * Add support for newer fastapi by @zmievsa in https://github.com/zmievsa/cadwyn/pull/224 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/3.15.8...3.15.9Low10/17/2024
4.4.0## What's Changed * Separate tutorial tests in CI by @zmievsa in https://github.com/zmievsa/cadwyn/pull/222 * Add webhook support by @zmievsa in https://github.com/zmievsa/cadwyn/pull/223 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.3.1...4.4.0Low10/6/2024
4.3.1**Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.3.0...4.3.1Low10/4/2024
4.3.0## What's Changed * [Dependencies] migrate from poetry to uv by @bastienpo in https://github.com/zmievsa/cadwyn/pull/219 ## New Contributors * @bastienpo made their first contribution in https://github.com/zmievsa/cadwyn/pull/219 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.2.4...4.3.0Low10/4/2024
4.2.4## What's Changed * Add doctests by @zmievsa in https://github.com/zmievsa/cadwyn/pull/211 * Fix broken background tasks by @zmievsa in https://github.com/zmievsa/cadwyn/pull/213 **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.2.3...4.2.4Low9/21/2024
4.2.3**Full Changelog**: https://github.com/zmievsa/cadwyn/compare/4.2.2...4.2.3Low9/16/2024

Dependencies & License Audit

Loading dependencies...

Similar Packages

boxsdkOfficial Box Python SDK10.6.0
polyfactoryMock data generation factories3.3.0
opsgenie-sdkPython SDK for Opsgenie REST API2.1.5
drf-spectacularSane and flexible OpenAPI 3 schema generation for Django REST framework0.29.0
django-cors-headersdjango-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS).4.9.0