Fastix
Production-ready FastAPI project scaffolding for teams that want a usable starting point instead of an empty repo.
What Fastix Does
Fastix is a CLI package that generates FastAPI projects with opinionated defaults for application structure, local development, testing, deployment, and common platform integrations.
It is designed for two workflows:
- Bootstrap a new FastAPI codebase quickly.
- Evolve an existing Fastix-generated project with additional modules later.
Core Capabilities
- Scaffold monolith and microservices layouts.
- Generate optional Docker or Podman assets.
- Add PostgreSQL, MySQL, or MongoDB support.
- Add Redis, Kafka, or RabbitMQ messaging integrations.
- Add Celery or RQ workers, plus Celery Beat or Kubernetes CronJob scheduling.
- Generate Helm, Kustomize, or raw Kubernetes manifests.
- Include logging, testing, editor tooling, and task runner templates.
- Inspect project state and add supported modules incrementally after generation.
Installation
pip install fastix
For the interactive prompt flow:
pip install "fastix[interactive]"
Quick Start
Create a project interactively:
fastix init
Create a project non-interactively:
fastix init my_api \
--arch monolith \
--db postgres \
--queue redis \
--worker celery \
--container docker \
--k8s helm \
--logging api_logger \
--cicd gitlab_ci
Create a microservices workspace:
fastix init platform_api \
--arch microservices \
--services gateway,users,orders \
--protocol grpc \
--db postgres \
--queue redis \
--worker celery \
--container docker \
--k8s kustomize \
--dapr
CLI Commands
fastix init
Generates a new project from the selected architecture and module set.
Examples:
fastix init billing_api --db postgres --container docker
fastix init --arch microservices
fastix inspect
Shows the manifest and active modules for an existing Fastix project.
fastix inspect .
fastix add-module
Adds or switches a supported incremental module in an existing project.
fastix add-module dapr --path .
fastix add-module container.podman --path .
fastix add-module orchestration.helm --path .
fastix list-modules
Lists modules that can be safely added to an existing generated project.
fastix list-modules
fastix info
Prints the current supported architectures, transports, and tooling options.
fastix info
Supported Options
Architectures
monolithmicroservices
Databases
postgresmysqlmongodbnone
Messaging
rediskafkarabbitmqnone
Workers and Schedulers
- Workers:
celery,rq,none - Schedulers:
celery_beat,cronjob,none
Containers and Orchestration
- Containers:
docker,podman,none - Orchestration:
helm,kustomize,raw_manifests,none
Developer Tooling
- Logging:
api_logger,none - Scripting:
makefile,justfile,taskfile,none - CI/CD option in config:
github_actions,gitlab_ci,none
Generated Project Characteristics
Fastix-generated projects can include:
- versioned API routing
- environment-based configuration
- health endpoints
- response and error helper scaffolding
- testing templates
- container and deployment assets
- messaging and background job scaffolding
- optional README and editor config files
The exact output depends on the CLI flags and architecture selected at generation time.
Local Development
python -m venv .venv
source .venv/bin/activate
pip install -e '.[dev,interactive]'
pytest -q
Build the package locally:
python -m build
python -m twine check dist/*
Repository Automation
This repository is set up to support GitHub-based packaging and release automation.
Recommended repository secrets:
PYPI_API_TOKEN: PyPI token used for package publishing
Recommended release flow:
- Update version metadata in pyproject.toml and src/fastix/init.py.
- Update CHANGELOG.md.
- Push a version tag such as
v0.2.1. - Let GitHub Actions build, validate, and publish the package.
Contributing
Contributors should keep changes aligned with the current module registry and CLI surface.
Typical extension points:
- Add or update templates under src/fastix/templates.
- Register new modules in src/fastix/modules/register.py.
- Extend CLI options in src/fastix/cli/main.py.
- Add or update tests under tests.
Before opening a PR:
- run
pytest -q - run
python -m build - verify generated output for the feature you changed
License
MIT. See LICENSE.
Metadata
Release files for fastix 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastix-0.2.1.tar.gz | 55.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastix-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 163.2 kB
Release files / fastix-0.2.1.tar.gz
| Download URL | fastix-0.2.1.tar.gz |
|---|---|
| Size | 55.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f583396a51a32ed57e53d9ea32c16bed3f170ceba760accc0603bfe253fd442
|
|
BLAKE2b-256 checksum How to use checksums |
7e4323bcdf67bd42db872c2c89e1be13790f5ef056034eecb56e336f3d2baf3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / fastix-0.2.1-py3-none-any.whl
| Download URL | fastix-0.2.1-py3-none-any.whl |
|---|---|
| Size | 107.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cae490aa4d7aeb9e9f197c53fd53361bda45191fc103f016e061689deb330f39
|
|
BLAKE2b-256 checksum How to use checksums |
e8c377e84d2e87bb8fba559060a05f076e66454c237a5948012080e4a93676d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|