基于 FastAPI 的异步基础工具库,提供 Redis、SQLAlchemy、Celery、日志管理等企业级基础设施的统一封装,简化异步 API 与服务端应用开发(import 包名:tomskit)
Project description
toms-fast
toms-fast 是一个基于 FastAPI 的异步基础工具库(Async Infrastructure Toolkit),用于简化和规范企业级异步 API 与服务端应用的开发。
PyPI 名称:
toms-fastPython import 包名:tomskitPython 版本要求:>=3.11
安装
# 使用 pip
pip install toms-fast
# 使用 uv(推荐)
uv pip install toms-fast
快速开始
从零开始创建新项目(推荐)
生成的项目结构为:
my_project/
├── backend/ # 后端代码(由 tomskit 生成)
├── web/ # 前端代码目录(由 tomskit 生成)
└── README.md # 项目说明
1. 安装 uv(如未安装)
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# 或使用 Homebrew (macOS)
brew install uv
2. 创建项目目录
mkdir my_project && cd my_project
3. 创建临时虚拟环境并安装 toms-fast
# 创建临时虚拟环境用于运行 CLI
uv venv cli-env
# 激活临时环境
source cli-env/bin/activate # Linux/macOS
# cli-env\Scripts\activate # Windows
# 安装 toms-fast
uv pip install toms-fast
4. 使用脚手架生成项目
# 创建完整项目(FastAPI + Celery)
# 因为当前目录名与项目名一致,会直接在当前目录创建 backend/
tomskit init my_project
# 或仅创建 FastAPI 项目
# tomskit init my_project --type fastapi
# 或仅创建 Celery 项目
# tomskit init my_project --type celery
5. 清理临时环境
# 退出虚拟环境
deactivate
# 删除临时环境
rm -rf cli-env # Linux/macOS
# rmdir /s /q cli-env # Windows
6. 初始化后端项目
# 进入后端目录
cd backend
# 安装项目依赖(会自动创建 .venv)
uv sync
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库和 Redis 连接信息
7. 数据库迁移(首次)
# 生成初始迁移文件
uv run alembic -c migrations/alembic.ini revision --autogenerate -m 'Initial migration'
# 执行迁移,将表结构同步到数据库
uv run alembic -c migrations/alembic.ini upgrade head
8. 启动服务
# 运行 FastAPI 开发服务器
uv run uvicorn main:app --reload
# 运行 Celery Worker(新终端)
uv run celery -A celery_app worker --loglevel=info
数据库迁移(日常开发)
当你修改了 Model 后,需要生成并执行迁移:
# 1. 生成迁移文件(根据 Model 变更自动生成)
uv run alembic -c migrations/alembic.ini revision --autogenerate -m '描述本次变更'
# 2. 执行迁移,将变更同步到数据库
uv run alembic -c migrations/alembic.ini upgrade head
其他常用迁移命令:
# 查看当前迁移状态
uv run alembic -c migrations/alembic.ini current
# 查看迁移历史
uv run alembic -c migrations/alembic.ini history
# 回滚到上一个版本
uv run alembic -c migrations/alembic.ini downgrade -1
# 回滚到指定版本
uv run alembic -c migrations/alembic.ini downgrade <revision_id>
完整命令速查(一键复制)
# === 完整流程 ===
# 1. 创建项目目录
mkdir my_project && cd my_project
# 2. 创建临时环境并生成项目
uv venv cli-env && source cli-env/bin/activate
uv pip install toms-fast
tomskit init my_project
deactivate && rm -rf cli-env
# 3. 初始化后端
cd backend
uv sync
cp .env.example .env
# 编辑 .env 配置数据库和 Redis
# 4. 数据库迁移
uv run alembic -c migrations/alembic.ini revision --autogenerate -m 'Initial migration'
uv run alembic -c migrations/alembic.ini upgrade head
# 5. 启动服务
uv run uvicorn main:app --reload
已有项目添加后端
如果你已有项目目录(如 existing_project/),可以进入该目录后执行:
cd existing_project
# 创建临时环境
uv venv cli-env && source cli-env/bin/activate
uv pip install toms-fast
# 生成项目(当前目录名与项目名一致,会直接创建 backend/)
tomskit init existing_project
# 清理并初始化
deactivate && rm -rf cli-env
cd backend && uv sync
CLI 命令
# 创建新项目
tomskit init <project_name> [--type full|fastapi|celery]
# 创建模块(Model + Controller + Schema)
tomskit scaffold module <name>
# 创建 Celery 任务
tomskit scaffold task <name>
# 创建扩展
tomskit scaffold extension <name>
# 初始化数据库迁移(已有项目)
tomskit migrations
# 初始化 Claude Code 支持
tomskit claude init
内置模块
| 模块 | 说明 |
|---|---|
tomskit.server |
FastAPI 扩展:资源管理、异常处理、中间件 |
tomskit.sqlalchemy |
SQLAlchemy 异步数据库集成,连接池管理 |
tomskit.redis |
Redis 异步客户端(单机/Sentinel/Cluster) |
tomskit.celery |
Celery 异步任务封装 |
tomskit.logger |
结构化日志,支持追踪 ID |
tomskit.task |
异步任务管理器 |
tomskit.tools |
Worker 管理工具(Gunicorn/Uvicorn) |
tomskit.utils |
数据序列化工具 |
详细文档请参考各模块的 README:
项目结构
src/tomskit/
├── server/ # FastAPI 扩展
├── sqlalchemy/ # 数据库集成
├── redis/ # Redis 客户端
├── celery/ # Celery 封装
├── logger/ # 日志管理
├── task/ # 异步任务管理
├── tools/ # Worker 管理
├── utils/ # 工具函数
└── cli/ # 脚手架工具
开发
# 克隆仓库
git clone https://github.com/tomszhou/toms-fast.git
cd toms-fast
# 安装开发依赖
uv sync --group dev
# 运行测试
pytest
# 代码检查
ruff check .
许可证
MIT License
相关链接
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file toms_fast-0.4.2-py3-none-any.whl.
File metadata
- Download URL: toms_fast-0.4.2-py3-none-any.whl
- Upload date:
- Size: 166.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d31386db4776763f50f313f6855df1bbc9e4d62930cd5d34bc0c2c24b3d117d
|
|
| MD5 |
b655978800465a8c7e5446f34f3e83ad
|
|
| BLAKE2b-256 |
834ff45383ffc1fa7d7eee422da953da875dde9b3fda9b5abf9313f5450ee1be
|