pylon
API versioning without forking your codebase. Pylon upgrades each request to the current version, runs the handler, and downgrades the response back to whatever the caller asked for.
Why it exists
Every API eventually breaks its contract, and the two usual answers both hurt: maintain N parallel forks, where one bug has to be fixed N times, or push every customer through a migration window on the product team's schedule. Stripe, Twilio, and Shopify each built an internal versioning layer for this. Pylon is that layer, released.
What it does
You keep one codebase on the current version. Pylon detects the caller's version, transforms the request upward, fills in defaults, validates against the current schema, runs the handler, then transforms the response back down. Requests already on the current version pay nothing because the identity transform inlines; legacy versions cost roughly 0.1ms per hop. Version naming is pluggable, with presets for semantic, numeric, date-based, CalVer, and Stripe-style versions, plus custom parsers and comparators.