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

Uploaded Python 3

File details

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

File metadata

  • Download URL: fapier-0.1.7.tar.gz
  • Upload date:
  • Size: 15.3 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.7.tar.gz
Algorithm Hash digest
SHA256 a27663e6f22f8187794142e3dd718d4b04f955f8e75f5a6f8cd9b2d3357b9d59
MD5 94993f159cf2817688865a1d11d1ed34
BLAKE2b-256 312f2dcd06b40d97c1cf397425c988e63bf92413e3845b6ab55f9ccf59b30c18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fapier-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 20.6 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d87e8d6044ac2050e8ea9365c65225c6f31fc01eca618aa86beb361bca4fb11f
MD5 49f4bc2aa0b6d66814821d39fd847175
BLAKE2b-256 77dacff4e98ef946d8fb340d685bac2a50ae0c04d45a30b44940c4bd155046dc

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