Skip to main content

A CLI tool to scaffold FastAPI projects with CRUD and schema support

Project description

⚡ FasterAPI — Scaffold FastAPI Apps with Ease

nats-fasterapi is a CLI tool that helps you scaffold and supercharge FastAPI projects.

It generates schemas, CRUD repositories, services, routes, and authentication utilities — so you can focus on building features instead of repetitive boilerplate. Think of it as a FastAPI project generator + productivity booster 🚀.

✨ Features

  • 🏗️ Generate Pydantic schemas with a single command.
  • 🗄️ Generate CRUD repositories backed by MongoDB (motor), Redis, or custom logic.
  • 🔧 Generate service layers to connect repositories and routes.
  • 🌐 Generate API routes with versioning support (latest-modified / highest-number).
  • 🔑 Generate token-based authentication utilities (repository + dependencies).
  • Mount routes automatically into main.py.
  • 🎯 Interactive prompts or automation-friendly -y (yes) flag.
  • 📦 Designed for scalable microservices using FastAPI.

📦 Installation

pip install nats-fasterapi

Upgrade to the latest version anytime:

fasterapi update

🚀 Usage

Run fasterapi --help to see all available commands:

Usage: fasterapi [OPTIONS] COMMAND [ARGS]...

  ⚡ FasterAPI CLI — Scaffold and supercharge your FastAPI projects

Options:
  -v, --version  Show the FasterAPI version and exit
  --help         Show this message and exit

Commands:
  make-crud       Generate CRUD repository functions
  make-schema     Generate Pydantic schemas
  make-service    Generate service layer templates
  make-route      Generate route files (with versioning)
  make-token-repo Generate token repository for roles
  make-token-deps Generate token dependency utilities
  mount           Mount routes into main.py
  run-d           Run the dev server (uvicorn --reload)
  update          Upgrade FasterAPI CLI to latest

🛠️ Commands Overview

make-schema

Generate a Pydantic schema.

fasterapi make-schema user

✅ Good:

fasterapi make-schema product

❌ Bad:

fasterapi make-schema User   # Avoid uppercase
fasterapi make-schema        # Missing name

make-crud

Generate CRUD repository functions for a schema.

fasterapi make-crud user

make-service

Generate a service layer for a schema.

fasterapi make-service user

make-route

Generate an API route with a versioning strategy.

fasterapi make-route user --version-mode latest-modified
fasterapi make-route product --version-mode highest-number
fasterapi make-route order      # Will ask interactively
fasterapi make-route order -y   # Skips prompt, defaults to highest-number

make-token-repo

Generate a token repository for authentication.

fasterapi make-token-repo admin user staff

If no roles are provided, it defaults to:

admin, user, staff, guest-editor

make-token-deps

Generate token dependency utilities.

fasterapi make-token-deps

mount

Mount all API routes into main.py.

fasterapi mount

run-d

Run the development server with uvicorn.

fasterapi run-d

Equivalent to:

uvicorn main:app --reload

update

Upgrade FasterAPI CLI to the latest version.

fasterapi update

👨‍💻 Development

Clone the repository and install it in editable mode:

git clone https://github.com/yourusername/nats-fasterapi.git
cd nats-fasterapi
pip install -e .

Run tests:

pytest

🛣️ Roadmap

Here’s what’s coming next for FasterAPI 🚀:

Database Support

  • SQLAlchemy (PostgreSQL / MySQL) repository generator
  • SQLite lightweight repository scaffolding
  • Cassandra & DynamoDB templates
  • Neo4j graph database integration

Global Config Support

  • Central config file (fasterapi.yaml) to scaffold schema, repo, service, and routes automatically
  • Environment-specific overrides for config-driven scaffolding

Authentication Enhancements

  • Social logins (Google, GitHub, Facebook, Twitter) with OAuth2
  • JWT refresh token rotation utilities
  • API key and HMAC authentication scaffolding

Project Scaffolding

  • fasterapi new myproject to bootstrap a full FastAPI project
  • Opinionated folder structure with best practices baked in

DX (Developer Experience) Improvements

  • Global --yes flag (applies to all commands for CI/CD)
  • Configurable templates for schema, CRUD, services, routes
  • Built-in Dockerfile & docker-compose scaffolding
  • Built-in GitHub Actions CI/CD workflow generator

Other Ideas

  • CLI autocompletion for bash/zsh/fish
  • Schema-first API generator (OpenAPI → code scaffolding)
  • Hot reload template customization

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

© 2025 Nathaniel Uriri

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

nats_fasterapi-0.2.89.tar.gz (64.3 kB view details)

Uploaded Source

Built Distribution

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

nats_fasterapi-0.2.89-py3-none-any.whl (97.4 kB view details)

Uploaded Python 3

File details

Details for the file nats_fasterapi-0.2.89.tar.gz.

File metadata

  • Download URL: nats_fasterapi-0.2.89.tar.gz
  • Upload date:
  • Size: 64.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.10

File hashes

Hashes for nats_fasterapi-0.2.89.tar.gz
Algorithm Hash digest
SHA256 872f8fa4085176b27279dd0775935ffcd6b7e53b290db6da6bd1cbfa71f2365b
MD5 7acb65884a9d326051a6b760ae863a85
BLAKE2b-256 c200729814e3e530d6c09fef3a2110ac3ca1a7ab0f93c2aff5bd8dd6bfa4e55d

See more details on using hashes here.

File details

Details for the file nats_fasterapi-0.2.89-py3-none-any.whl.

File metadata

File hashes

Hashes for nats_fasterapi-0.2.89-py3-none-any.whl
Algorithm Hash digest
SHA256 c385af71a693ebabfa686df14574d002eab3239be294af3ebdbd18a2c159926b
MD5 3af96cfc935d4fe2622095a991176473
BLAKE2b-256 50aceb102af2078cc1b5105e538bd54ee39b5759d10dacd0ef08057d459da68b

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