Skip to main content

A command-line tool to scaffold and bootstrap FastAPI projects quickly.

Project description

FastAPI Project Generator CLI

A CLI tool that scaffolds FastAPI projects with optional database and API structure.


โœ… Features

Feature Description
Generate FastAPI project Creates a full FastAPI folder structure
Optional Database SQLite, PostgreSQL (Async), or MongoDB
Redis & Caching Optional integrated Redis support
JWT Authentication Scaffold a full Auth system (JWT + Password Hashing)
WebSockets Integrated WebSocket support & boilerplates
Background Tasks Support for Celery or Arq workers
Mail Service Integrated FastAPI-Mail support
fapi run Automatically detect entry point & run with uvicorn
fapi add commands Easily add routes, models, schemas, crud, services

๐Ÿ“‚ Project Output Structure

When everything is enabled:

project_name/
 โ”œโ”€ app/
 โ”‚  โ”œโ”€ main.py
 โ”‚  โ”œโ”€ core/
 โ”‚  โ”‚   โ”œโ”€ config.py      # Core config with .env loading
 โ”‚  โ”‚   โ”œโ”€ database.py    # DB connection (SQLAlchemy Async or MongoDB)
 โ”‚  โ”‚   โ””โ”€ security.py    # JWT & Auth logic
 โ”‚  โ”œโ”€ models/
 โ”‚  โ”‚   โ””โ”€ user.py
 โ”‚  โ”œโ”€ schemas/
 โ”‚  โ”‚   โ””โ”€ user.py
 โ”‚  โ”œโ”€ crud/
 โ”‚  โ”‚   โ””โ”€ user.py
 โ”‚  โ”œโ”€ services/
 โ”‚  โ”‚   โ”œโ”€ email.py       # Mail service
 โ”‚  โ”‚   โ””โ”€ passwordHash.py
 โ”‚  โ”œโ”€ api/
 โ”‚  โ”‚   โ”œโ”€ ws/            # WebSocket routes
 โ”‚  โ”‚   โ”œโ”€ deps.py        # DI for Auth
 โ”‚  โ”‚   โ””โ”€ router.py      # Main router
 โ”‚  โ”œโ”€ tasks/             # Worker logic (Celery/Arq)
 โ”‚  โ””โ”€ __init__.py
 โ”œโ”€ .fastapi              # internal flag to detect project
 โ”œโ”€ .env                  # Generated with configured keys
 โ”œโ”€ requirements.txt
 โ””โ”€ .venv/

๐Ÿงฐ Installation

Clone Repo

pip install fapier

or

pipx install fapier

Requires Python 3.10+


Usage

Create a project

fapi create myProject

Advanced Options

fapi create myProject --db postgres --is-async --redis --auth jwt --websockets --tasks celery --mail --routes
Option Flag Description
Database --db sqlite, postgres, or mongodb
Async --is-async Enable async mode for SQLAlchemy
Redis --redis Add Redis integration
Auth --auth Scaffold JWT Auth (jwt)
WebSockets --websockets Add WebSocket boilerplates
Tasks --tasks celery or arq
Mail --mail Add Mail Service

Add new components

fapi add route product
fapi add model product --schema --crud
fapi add service payment
fapi add schema product
fapi add crud product

๐Ÿš€ Run the project

Just navigate into your project and run:

fapi run

This automatically detects the virtual environment and runs the project using uvicorn app.main:app --reload.


๐Ÿ“Œ Roadmap

Feature Status
Basic FastAPI scaffold โœ… Done
PostgreSQL & MongoDB โœ… Done
Async DB Support โœ… Done
JWT Authentication โœ… Done
Redis & WebSockets โœ… Done
Background Workers โœ… Done
fapi run command โœ… Done
Publish on PyPI โœ… Done
fapi add commands โœ… Done
Alembic migrations ๐Ÿ”œ Planned
Docker support ๐Ÿ”œ Planned

๐Ÿค Contributing

Pull requests are welcome! ๐Ÿ‘


โญ If you like this tool, give the repo a star!

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

fapier-0.1.8.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

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

fapier-0.1.8-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file fapier-0.1.8.tar.gz.

File metadata

  • Download URL: fapier-0.1.8.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for fapier-0.1.8.tar.gz
Algorithm Hash digest
SHA256 14c39fc3c32e7aa293314796d691918bfdda898ecbf7096137b538a4f0841b66
MD5 3a56cb11f37019cc4f0ae26e89f90733
BLAKE2b-256 a2234ca364fadc542ecc229df9ebe6a9afa64da7b8f5457db9c419fe4c76c7db

See more details on using hashes here.

File details

Details for the file fapier-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: fapier-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for fapier-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 c7ab0bdf8242ced695999d2b4f33eb9d1316ecb34206ef0944d966580dfe034d
MD5 4dfbddbffda94432f291547023c6a778
BLAKE2b-256 963d18bf03cbc3d3b4c79910578e33b1bff54a17e6ca57b2d002f79a5584e601

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