# cadwyn

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

- **URL**: https://www.freshcrate.ai/projects/cadwyn
- **Author**: pypi
- **Category**: Frameworks
- **Latest version**: `7.0.0` (2026-06-06)
- **License**: Unknown
- **Source**: https://github.com/zmievsa/cadwyn
- **Homepage**: https://pypi.org/project/cadwyn/
- **Language**: Python
- **GitHub**: 298 stars, 51 forks
- **Registry**: pypi (`cadwyn`)
- **Tags**: `api`, `api-versioning`, `code-generation`, `fastapi`, `hints`, `json-schema`, `pydantic`, `pypi`, `python`

## 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!

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `7.0.0` | 2026-06-06 | High | ## What's Changed * **Breaking change if you relied on lifespan running multiple times:** Fix duplicated lifecycle callbacks in Cadwyn routers by @zmievsa in https://github.com/zmievsa/cadwyn/pull/375 * Add support for mounting by @zmievsa in https://github.com/zmievsa/cadwyn/pull/376   **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.2.2...7.0.0 |
| `6.2.2` | 2026-04-21 | Low | Imported from PyPI (6.2.2) |
| `6.2.1` | 2026-04-20 | High | ## 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://githu |
| `6.2.0` | 2026-03-29 | Medium | - Add support for overriding static assets for swagger/redoc  **Full Changelog**: https://github.com/zmievsa/cadwyn/compare/6.1.1...6.2.0 |
| `6.1.1` | 2026-03-23 | Medium | ## 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.1 |
| `6.1.0` | 2026-03-22 | Low | ## 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.0 |
| `6.0.4` | 2026-03-14 | Low | ## 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://git |
| `6.0.3` | 2026-02-15 | Low | ## 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.3 |
| `6.0.2` | 2026-02-13 | Low | ## 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/zmi |
| `6.0.1` | 2026-01-23 | Low | ## 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... |

## Citation

- HTML: https://www.freshcrate.ai/projects/cadwyn
- Markdown: https://www.freshcrate.ai/projects/cadwyn.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/cadwyn/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
