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.86.tar.gz (53.6 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.86-py3-none-any.whl (73.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nats_fasterapi-0.2.86.tar.gz
  • Upload date:
  • Size: 53.6 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.86.tar.gz
Algorithm Hash digest
SHA256 5330d47b98e9a2f0156ed3d0073d3443970899176c5d2bd93e72e926d53c834c
MD5 52a112e52f0e58b603a4b485ebbe4b05
BLAKE2b-256 bcf9e9af63c2768c5422198d04ed07ca5e93e9e08a84eabcf553697658bba4c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nats_fasterapi-0.2.86-py3-none-any.whl
Algorithm Hash digest
SHA256 0042e120ae3779c691f49c56b53ee779bd7450e12cb341539de9517ce7f66547
MD5 f580d653409fc1154c3bcc752b27db2e
BLAKE2b-256 6d0c89d42ac2d85f5f4ef76cd6c5f368012f3b96fa569806579dfd49b474062a

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