Skip to main content

Aury Boot

基于 FastAPI 生态的企业级 API 开发框架,提供所有微服务共用的基础设施组件。

快速开始

# 1. 创建项目目录并初始化
mkdir my-service && cd my-service
uv init . --name my_service --no-package --python 3.13

# 2. 添加依赖
uv add "aury-boot[recommended,admin]"  # admin 可选,提供 SQLAdmin 管理后台

# 3. 初始化项目结构
aury init

# 4. 启动开发服务器
aury server dev

功能模块

  • core: 核心功能(数据库、缓存、任务调度等)
  • utils: 工具函数(日志、安全、HTTP客户端等)
  • models: 共享数据模型和响应模型
  • repositories: 基础仓储模式
  • services: 基础服务类
  • adapters: 第三方服务适配器
  • rpc: RPC通信框架
  • exceptions: 错误处理系统
  • i18n: 国际化支持
  • testing: 测试框架
  • migrations: 数据库迁移工具

主要功能

1. 国际化支持 (i18n)

提供完整的多语言支持,包括文本翻译、日期/数字本地化等:

from aury.boot.i18n import Translator, translate, set_locale

# 设置语言环境
set_locale("zh_CN")

# 使用翻译器
translator = Translator(locale="zh_CN")
message = translator.translate("user.created", name="张三")

# 使用简写函数
message = translate("user.created", name="张三")

# 装饰器方式
@_("user.title")
def get_user_title():
    return "User Title"  # 会被翻译

2. 测试框架

提供便捷的测试工具,包括测试基类、测试客户端、数据工厂等:

from aury.boot.testing import TestCase, TestClient, Factory

class UserServiceTest(TestCase):
    """测试基类,自动处理数据库事务回滚"""
    
    async def setUp(self):
        """测试前准备"""
        self.client = TestClient(app)
        self.user_factory = Factory(User)
    
    async def test_create_user(self):
        """测试创建用户"""
        user = await self.user_factory.create(name="张三")
        response = await self.client.post("/users", json={"name": "张三"})
        assert response.status_code == 201

3. 数据库迁移工具

提供便捷的数据库迁移管理,类似 Django 的命令行接口:

from aury.boot.migrations import MigrationManager

# 使用 Python API
migration_manager = MigrationManager()
await migration_manager.make_migrations(message="add user table")
await migration_manager.migrate_up()
await migration_manager.migrate_down(version="previous")
status = await migration_manager.status()

命令行工具:

# 生成迁移文件
aury migrate make -m "add user table"

# 执行迁移
aury migrate up

# 回滚迁移
aury migrate down

# 查看状态
aury migrate status

# 显示迁移历史
aury migrate show

4. 代码生成器

快速生成标准的 CRUD 代码(模型、仓储、服务、API 路由):

# 生成完整 CRUD(Model + Repository + Service + API)
aury generate crud user

# 单独生成各层代码
aury generate model user      # SQLAlchemy 模型
aury generate repo user       # Repository 仓储层
aury generate service user    # Service 服务层
aury generate api user        # API 路由

# 交互式生成(推荐):逐步选择字段、类型、验证规则
aury generate crud user -i
aury generate model user -i

# 指定字段(非交互式)
aury generate model user --fields "name:str,email:str,age:int"

交互式模式 (-i) 会引导你:

  • 添加字段名称和类型
  • 设置字段约束(唯一、可空、默认值等)
  • 配置关系字段(外键、多对多等)
  • 自动插入 API 路由到 api/__init__.py

生成的代码遵循项目架构模式,开箱即用。

使用方式

在AUM工作区内的其他包中,可以直接导入:

from aury.boot.infrastructure.database import DatabaseManager
from aury.boot.infrastructure.logging import logger
from aury.boot.core import BaseModel, BaseRepository, BaseService
from aury.boot.interfaces import BaseRequest, BaseResponse
from aury.boot.application.rpc import RPCClient

开发指南

修改此包后,所有依赖它的服务都会自动使用最新版本,无需重新安装。

安装

# 推荐(PostgreSQL + Redis + 任务队列 + 调度器)
uv add "aury-boot[recommended]"

# 或按需组合
uv add "aury-boot[postgres,redis]"

# 全部依赖
uv add "aury-boot[all]"

可选依赖

名称 说明
postgres PostgreSQL 数据库
mysql MySQL 数据库
sqlite SQLite 数据库
redis Redis 缓存
s3 S3 对象存储
tasks 任务队列
rabbitmq RabbitMQ 支持
scheduler 定时调度
recommended 推荐组合
all 全部依赖

开发环境设置

# 克隆仓库
git clone https://github.com/AuriMyth/aury-boot.git
cd aury-boot

# 安装依赖
uv sync --group dev

# 运行测试
pytest

# 代码检查
ruff check .
mypy aury/

Metadata

Release files for aury-boot 0.0.71

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aury-boot 0.0.71
File Size Uploaded
aury_boot-0.0.71.tar.gz 309.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aury-boot 0.0.71
File Interpreter ABI Platform
aury_boot-0.0.71-py3-none-any.whl Python 3 none any Details

Total release size: 756.1 kB

Release files / aury_boot-0.0.71.tar.gz

Download URL aury_boot-0.0.71.tar.gz
Size 309.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e5729d137bfb856e7d1e8039fe99468c722e59d914820410b691788b06d23e89
BLAKE2b-256 checksum
How to use checksums
3fad0bfb01bd7801542b7a176afb4190744fc62d0aaa9bce54d4762d7cffd333
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / aury_boot-0.0.71-py3-none-any.whl

Download URL aury_boot-0.0.71-py3-none-any.whl
Size 446.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bd4127dca208e82baf4809b99761c50118a40acbe5f2148915e81d36abee12a8
BLAKE2b-256 checksum
How to use checksums
e211240355e29174858fe4ee2e2d7db92d03612c5cd508a018a30548fa386d3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.0.71 This release

2 release files

0.0.70

2 release files

0.0.69

2 release files

0.0.68

2 release files

0.0.67

2 release files

0.0.66

2 release files

0.0.65

2 release files

0.0.64

2 release files

0.0.63

2 release files

0.0.62

2 release files

0.0.60

2 release files

0.0.58

2 release files

0.0.57

2 release files

0.0.55

2 release files

0.0.54

2 release files

0.0.53

2 release files

0.0.52

2 release files

0.0.51

2 release files

0.0.50

2 release files

0.0.49

2 release files

0.0.48

2 release files

0.0.38

2 release files

0.0.37

2 release files

0.0.36

2 release files

0.0.35

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.29

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page