Metadata-Version: 2.4
Name: fastv
Version: 1.1.1
Summary: Laravel-style FastAPI framework
Author-email: FastV Team <support@fastv.dev>
License-Expression: MIT
Keywords: fastapi,laravel,web-framework,async,orm,cli
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: fastapi>=0.139.0
Requires-Dist: uvicorn>=0.51.0
Requires-Dist: pydantic>=2.13.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: python-dotenv>=1.2.0
Requires-Dist: click>=8.4.0
Requires-Dist: rich>=14.0.0
Requires-Dist: redis>=5.0
Requires-Dist: apscheduler>=3.10.0
Requires-Dist: alembic>=1.13.0
Requires-Dist: PyJWT>=2.8.0
Requires-Dist: passlib[bcrypt]>=1.7.4
Requires-Dist: bcrypt<4.1.0,>=4.0.0
Requires-Dist: asynctasq>=1.7.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: httpx>=0.28.0; extra == "dev"
Requires-Dist: ruff>=0.8.0; extra == "dev"
Provides-Extra: mysql
Requires-Dist: aiomysql>=0.2.0; extra == "mysql"
Requires-Dist: pymysql>=1.0; extra == "mysql"
Requires-Dist: cryptography>=3.0; extra == "mysql"
Provides-Extra: postgres
Requires-Dist: asyncpg>=0.30.0; extra == "postgres"
Requires-Dist: psycopg2-binary>=2.9; extra == "postgres"
Provides-Extra: sqlite
Requires-Dist: aiosqlite>=0.20.0; extra == "sqlite"

# FastV — Laravel-style FastAPI Framework

一个基于 **FastAPI** 的全栈 Web 框架，把 Laravel 的架构范式（服务容器、门面、服务提供者、Eloquent 风格 ORM、Artisan 风格 CLI、中间件管道、任务队列、调度）带到 Python，同时保留 FastAPI 的高性能与异步特性。

## 特性

- **服务容器（IoC）** — 依赖注入与自动装配，支持 `bind` / `singleton` / `instance` / `alias`
- **Eloquent 风格 ORM** — 基于 SQLAlchemy 2.0，链式 QueryBuilder、软删除、分页、类型转换、访问器/修改器、变更追踪
- **Artisan 风格 CLI** — 代码生成器（`make:model` / `make:controller` / `make:migration`）、数据库迁移、队列管理
- **JWT 认证** — Guard、密码哈希（bcrypt）、token 签发/校验
- **缓存系统** — Array / File / Redis 三种驱动，键前缀、TTL
- **任务队列** — AsyncTasQ 集成，重试、延迟任务、限流任务
- **调度器** — APScheduler + Laravel 风格流式 DSL（`cron` / `every` / `daily_at` …）
- **中间件管道** — 可链式组合的 HTTP 中间件
- **事件系统** — 发布/订阅，支持通配符
- **统一异常处理** — 分层业务异常 + 统一 JSON 响应
- **健康检查** — `/health`（liveness）与 `/health/ready`（readiness，探活 DB/Redis）

## 安装

```bash
# 核心框架
pip install fastv

# 一键安装全部可选依赖（MySQL/PostgreSQL/SQLite 驱动 + 队列）
pip install fastv[all]
```

可选 extras：`dev`（测试/覆盖率/ruff）、`mysql`、`postgres`、`sqlite`、`queue`。

## 快速开始

```bash
# 1. 安装框架
pip install fastv

# 2. 创建项目目录并初始化（生成 app/、bootstrap/、config/、migrations/、.env）
mkdir myapp && cd myapp
fastv new

# 3. 启动开发服务器（热重载 + debug）
fastv start dev

# 4. 运行数据库迁移
fastv migrate
```

## 要求

- Python 3.12+
- FastAPI 0.139+

## 目录结构（框架目标）

```
myapp/
├── app/            # 应用代码（controller / model / service / middleware / route / validate / queue / command）
├── bootstrap/      # 应用入口 main.py
├── config/         # 配置文件（app / database / redis / auth / …）
├── migrations/     # Alembic 数据库迁移
├── storage/        # 日志、缓存等运行时目录
├── .env            # 环境变量（含密钥，勿提交）
└── alembic.ini
```

## 许可证

MIT
