Skip to main content

Scaffold production FastAPI services from YAML

Project description

demo

feathers

Scaffold production FastAPI services from one YAML file, in under 10 seconds.

PyPIWhyArchitectureDemo Script

ci license


What it does

feathers is a CLI that takes a YAML schema and emits an opinionated, MVC-structured FastAPI service with tests, migrations, observability, CI, and Docker — all wired up. Unlike a cookiecutter, feathers add rewrites the AST of an existing service so you can keep regenerating without clobbering hand-written code.

The unique angle

  • AST-aware incremental mode (libcst) — feathers add endpoint slots new code into existing files without touching a line you wrote
  • Hand-written fence markers — anything between # feathers: begin hand-written and # feathers: end hand-written is never rewritten
  • One-file schema — YAML defines models, endpoints, observability, and deploy target
  • Typed everything — Pydantic v2 validates the schema before a single file is written
  • Ships the platform middleware — every generated service gets /health, /version, /metrics, request ID propagation, and JWT validation out of the box

Quick start

pip install feathers-cli
feathers new --schema demos/users.yaml --name hello-users --out .
cd hello-users && make run
# → http://localhost:8000/docs

Benchmarks

Metric Target
Generated GET /users/{id} sustained throughput ≥10,000 req/s
Generated GET /users/{id} p99 latency <30 ms

Benchmarks run via feathers bench (Locust) against a local Postgres.

Architecture

See docs/ARCHITECTURE.md.

Tech stack

Concern Choice
CLI framework Typer
Template engine Jinja2
YAML validation Pydantic v2
AST rewriting libcst
Package manager uv

Deployment

  • PyPI: published on v* tag push via GitHub Actions
  • Generated services: deploy to Render, Fly.io, or Docker (target chosen in schema)

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

feathers_cli-0.1.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

feathers_cli-0.1.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file feathers_cli-0.1.0.tar.gz.

File metadata

  • Download URL: feathers_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for feathers_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3f68f3c7aa6bb929f6486f52109b1c9a6130d1de0c0c8ba743afcbc5b54eeaae
MD5 aa92635e993eeac1157546172c7416ca
BLAKE2b-256 ece967c43f243ced30836d862a6d4cac8e58f4d524c7c22a2dbe2f4a273b9fa7

See more details on using hashes here.

File details

Details for the file feathers_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: feathers_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for feathers_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fb5214d5a2041692c7840b26137d23822aa35eac08e8e86618bdd0267667e7e3
MD5 6d3e346e7be9210b56806ed5ceec67b2
BLAKE2b-256 6e0d6744b7c108b7e272e24a491b198921b299f9598a65b2a53da58dea524975

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page