Metadata-Version: 2.4
Name: fastix
Version: 0.1.5
Summary: A lightweight FastAPI starter generator with pluggable infrastructure, testing, and deployment templates.
Project-URL: Homepage, https://github.com/paresh/fastix
Project-URL: Repository, https://github.com/paresh/fastix
Project-URL: Issues, https://github.com/paresh/fastix/issues
Author: Paresh
License: MIT
License-File: LICENSE
Keywords: boilerplate,cli,devops,docker,fastapi,kubernetes,microservices,scaffolding
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.10
Requires-Dist: jinja2>=3.1.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: tomli>=2.0.1; python_version < '3.11'
Requires-Dist: typer>=0.9.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: interactive
Requires-Dist: questionary>=2.0.0; extra == 'interactive'
Description-Content-Type: text/markdown

# Fastix

Fastix is a lightweight FastAPI project lifecycle CLI for developers who want a clean starting point, guided project setup, and repeatable scaffolding.

## Compatibility

Fastix targets:
- Python `>=3.10`
- Linux, macOS, and Windows
- pure-Python wheel installs with no compiled runtime dependency owned by Fastix itself

Notes:
- Python 3.10 uses `tomli` automatically for TOML parsing
- Python 3.11+ uses the standard-library `tomllib`
- interactive prompts are optional and installed only with `fastix[interactive]`

## Lightweight By Default

Base install keeps runtime dependencies small:
- `typer`
- `rich`
- `jinja2`
- `pydantic`
- `tomli` only on Python 3.10

Interactive prompt tooling is optional:

```bash
pip install fastix
pip install "fastix[interactive]"
```

## What Fastix Does

`fastix init` works like an architecture wizard:
- choose `monolith` or `microservices`
- see supported tooling options during setup
- start with sensible defaults already selected
- unselect anything you do not want
- generate a cleaner project structure with shared API response contracts

## Interactive Init

```bash
fastix init
```

The wizard guides users through:
- architecture choice
- service names for microservices
- service communication (`http` or `grpc`)
- optional Dapr support
- database and Alembic migrations
- Redis / queue / worker options
- containerization and orchestration
- project essentials such as `.gitignore`, `README.md`, `.editorconfig`, tests, and shared responses

## Default-Selected Essentials

Fastix shows baseline project files and developer defaults in the wizard and preselects them for convenience:
- `.gitignore`
- `README.md`
- `.editorconfig`
- `.env.example`
- test scaffolding
- API versioning
- health checks
- shared response contracts

Users can unselect these before generation.

## Generated Structure

### Monolith

```text
app/
  api/
  core/
  db/
  models/
  schemas/
  services/
  shared/
```

### Microservices Workspace

```text
services/
  gateway/
  users/
shared/
infra/
```

Each generated microservice now lives directly under `services/<name>/` instead of the older `services/<name>_service/` pattern.

## Shared API Responses

Generated projects include standard response contracts so teams can keep a consistent API format from day one:
- success response
- error response
- paginated response
- shared error detail model

## Migrations

For PostgreSQL and MySQL projects, Fastix can generate Alembic scaffolding during init. The option is visible in the wizard and enabled by default for SQL databases.

## Example Non-Interactive Usage

```bash
fastix init inventory_api \
  --arch microservices \
  --services gateway,orders \
  --protocol grpc \
  --native-grpc \
  --dapr \
  --db postgres \
  --migrations \
  --container docker \
  --k8s helm
```

## Lifecycle Commands

```bash
fastix inspect .
fastix add-module dapr --path .
fastix add-module container.podman --path .
fastix list-modules
```

## Compatibility Validation

This repository now includes automated package checks for:
- wheel/sdist build validation
- install smoke tests on Linux, macOS, and Windows
- Python 3.10, 3.11, 3.12, 3.13, and 3.14
- base and `interactive` installs

## Release Checks

```bash
PYTHONPATH=src ./.venv/bin/python -m pytest -q -p no:cacheprovider
./.venv/bin/python -m build --no-isolation
./.venv/bin/python -m twine check dist/*
```
