cadwyn
Production-ready community-driven modern Stripe-like API versioning in FastAPI
Decision gist · record as of 2026-08-14
Yes, if you are building a FastAPI service that needs to support multiple API versions long-term. Cadwyn eliminates version duplication and keeps your business logic simple by handling backward compatibility through declarative version-change modules. It is actively maintained, has no known vulnerabilities, and carries a permissive MIT license. Install friction is low. The main consideration is learning the version-change module pattern, which the documentation covers.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later and an existing FastAPI application to integrate with.
- Low friction install with a pure Python wheel.
- Actively maintained with a recent release (16 days old) and steady commits.
License · maintenance · safety
MIT (permissive) — MIT license is permissive—you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
last release 2026-07-29 (16 days) · last repo commit 2026-08-11 · 307 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 17,155,419 downloads/mo, #1,130 on PyPI
Alternatives
Verify before relying
pip install cadwyn
from cadwyn import Cadwyn
from fastapi import FastAPI
app = FastAPI()
cadwyn = Cadwyn(app=app)- How much overhead does automatic version generation add to request/response handling at runtime?
- What is the learning curve for defining version-change modules, and are there patterns for complex schema migrations?
- How does Cadwyn handle breaking changes that cannot be automatically backported?
What it is and what it does
Cadwyn is a FastAPI extension that implements Stripe-style API versioning, where you write only the newest API version and let the framework generate older versions automatically. Instead of maintaining separate code paths for each version, you define small, focused "version change" modules that describe what changed between versions—Cadwyn then applies these transformations to responses and requests to support multiple API versions from a single implementation.
The package is built on FastAPI, Pydantic, and Starlette, and targets developers who need to support many API versions long-term while keeping business logic clean and version-agnostic. It's marked as production-stable and actively maintained, with comprehensive documentation covering both practical setup and the theory behind migration-based versioning.
Use it for
- Maintain a public API that supports 3+ versions simultaneously without duplicating endpoint logic across versions.
- Automatically backport bug fixes and new features to older API versions by applying them to the newest version only.
- Evolve your API schema over time while keeping client code that depends on older versions working without modification.
- Learn or teach modern API versioning patterns by studying Cadwyn's migration-based approach and documentation.
- Build a multi-tenant SaaS where different customers are on different API versions but share the same backend code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building a FastAPI service that needs to support multiple API versions long-term.
Cadwyn eliminates version duplication and keeps your business logic simple by handling backward compatibility through declarative version-change modules. It is actively maintained, has no known vulnerabilities, and carries a permissive MIT license. Install friction is low. The main consideration is learning the version-change module pattern, which the documentation covers.
Install
cadwyn on PyPI
Before you install
Low friction install with a pure Python wheel. Actively maintained with a recent release (16 days old) and steady commits. Depends on FastAPI, Pydantic, and Starlette, which are standard in the ecosystem.
Requires Python 3.10 or later and an existing FastAPI application to integrate with.
License in practice
MIT license is permissive—you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install cadwyn
from cadwyn import Cadwyn
from fastapi import FastAPI
app = FastAPI()
cadwyn = Cadwyn(app=app)
Verify before relying
- How much overhead does automatic version generation add to request/response handling at runtime?
- What is the learning curve for defining version-change modules, and are there patterns for complex schema migrations?
- How does Cadwyn handle breaking changes that cannot be automatically backported?
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 7 packagesbackports-strenumfastapijinja2pydanticstarlettetyping-extensionstyping-inspection |
| Maintenance | Actively maintained 16 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 17,155,419 / month, #1,130 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: AsyncIOFramework :: FastAPIFramework :: PydanticIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: InternetTopic :: Internet :: WWW/HTTPTopic :: Internet :: WWW/HTTP :: HTTP ServersTopic :: Software DevelopmentTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Application FrameworksTopic :: Software Development :: Libraries :: Python ModulesTyping :: Typed |
Evidence: cadwyn-7.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “stripe-like api versioning”
- cadwynCadwyn generates older API versions automatically from your newest…
- bauplanBauplan is a CLI and SDK for interacting with a code-first data…
- fastapi-versioningAdds API versioning to FastAPI applications by decorating endpoints…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also fastapi-slim · fastapi-cli · fast-depends · fastapi-azure-auth · fastapi-versioning · langchain-classic · dj-stripe · fastapi-events · fastapi-lifespan-manager