Metadata-Version: 2.3
Name: fastapi-startkit
Version: 0.51.0
Summary: A modular, provider-driven framework for building async Python web applications with FastAPI — bundling a service container, configuration system, an async-first ORM, facades, and a Cleo-powered console.
Keywords: fastapi,framework,async,web,asgi,orm,sqlalchemy,pydantic,ioc-container,dependency-injection,service-provider,cli,console,configuration,microservices,starter-kit,boilerplate
Author: Bedram Tamang
Author-email: Bedram Tamang <tmgbedu@gmail.com>
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Dist: dotty-dict>=1.3.1
Requires-Dist: pendulum>=3.1.0,<4.0.0
Requires-Dist: inflection>=0.5.1
Requires-Dist: requests>=2.32.5,<3.0.0
Requires-Dist: cleo>=2.1.0,<3.0.0
Requires-Dist: dotenv>=0.9.9
Requires-Dist: pydantic>=2.12.5
Requires-Dist: langchain>=1.0.0 ; extra == 'ai'
Requires-Dist: langchain-core>=1.0.0 ; extra == 'ai'
Requires-Dist: faker>=40.13.0 ; extra == 'database'
Requires-Dist: sqlalchemy[asyncio]>=2.0.38 ; extra == 'database'
Requires-Dist: fastapi[standard]>=0.124.4 ; extra == 'fastapi'
Requires-Dist: itsdangerous>=2.2.0 ; extra == 'fastapi'
Requires-Dist: jinja2>=3.1 ; extra == 'inertia'
Requires-Dist: markupsafe>=2.0 ; extra == 'inertia'
Requires-Dist: aiomysql>=0.2.0 ; extra == 'mysql'
Requires-Dist: asyncpg>=0.29.0 ; extra == 'postgres'
Requires-Dist: aiosqlite>=0.22.1 ; extra == 'sqlite'
Requires-Dist: jinja2>=3.1 ; extra == 'vite'
Requires-Python: >=3.12, <4.0
Project-URL: Homepage, https://fastapi-startkit.github.io
Project-URL: Documentation, https://fastapi-startkit.github.io
Project-URL: Repository, https://github.com/fastapi-startkit/fastapi-startkit-framework
Project-URL: Issues, https://github.com/fastapi-startkit/fastapi-startkit-framework/issues
Project-URL: Changelog, https://github.com/fastapi-startkit/fastapi-startkit-framework/releases
Provides-Extra: ai
Provides-Extra: database
Provides-Extra: fastapi
Provides-Extra: inertia
Provides-Extra: mysql
Provides-Extra: postgres
Provides-Extra: sqlite
Provides-Extra: vite
Description-Content-Type: text/markdown

# FastAPI Startkit

[![codecov](https://codecov.io/gh/fastapi-startkit/fastapi-startkit-framework/graph/badge.svg)](https://codecov.io/gh/fastapi-startkit/fastapi-startkit-framework)
[![PyPI version](https://img.shields.io/pypi/v/fastapi-startkit.svg)](https://pypi.org/project/fastapi-startkit/)
[![Python versions](https://img.shields.io/pypi/pyversions/fastapi-startkit.svg)](https://pypi.org/project/fastapi-startkit/)

A modular, provider-driven framework for building Python applications with FastAPI. It bundles a
service container, configuration system, an async-first ORM, facades, and a Cleo-powered console into
a single cohesive foundation.

## Installation

```bash
pip install fastapi-startkit
```

Optional extras enable additional capabilities:

```bash
fastapi-startkit[fastapi]    # FastAPI + Starlette
fastapi-startkit[database]   # SQLAlchemy async ORM
fastapi-startkit[vite]       # Jinja2 for Vite integration
```

## Features

- **Service container** — IoC container with `bind`/`make`/`resolve` auto-wiring and lifecycle hooks.
- **Configuration** — dataclass-based config sourced from the environment with dotted-key access.
- **Providers** — two-phase (`register` / `boot`) service registration.
- **Routing** — a `Router` wrapper around FastAPI's `APIRouter` with a `resource()` CRUD shortcut.
- **ORM** — async-first Masonite ORM fork on SQLAlchemy async, with relationships and migrations.
- **Facades** — static-like access to container-resolved services (`Config`, `Auth`, ...).
- **Console** — Cleo-based CLI (`artisan`) for migrations, seeders, and code generation.

## Documentation

Full documentation is available at
[fastapi-startkit.github.io](https://fastapi-startkit.github.io).

## Development

```bash
# Install dependencies
uv sync --group dev --extra database --extra sqlite --extra fastapi --extra vite --extra postgres

# Run the test suite
uv run pytest tests/ -v

# Run tests with coverage
uv run pytest --cov --cov-report=term-missing
```

Coverage is collected in CI and reported to
[Codecov](https://codecov.io/gh/fastapi-startkit/fastapi-startkit-framework).

## License

See the repository root for license details.
