概览
A3S Boot 是一个面向异步 Rust 服务的模块化框架。它借鉴 NestJS 的模块、Provider、Controller 和增强器组织方式,同时保留 Rust 的静态类型、显式所有权与可替换适配器。
Boot 不是 Axum 的包装层。请求、响应、路由、执行上下文与错误属于框架核心,Axum 只是默认启用的 HTTP 适配器。属性宏在编译期生成普通 Boot 定义,不依赖运行时装饰器元数据。
应用从哪里开始
一个 Boot 应用沿着同一条明确路径构建:
核心保证
- Provider 可以使用类型 token 或命名 token,并遵守模块导入与导出可见性。
- singleton、request 和 transient scope 在解析图中显式传播。
- HTTP、WebSocket 与消息处理使用一致的 Guard、Interceptor、Pipe 和异常处理模型。
- 网络协议与消息 broker 的具体行为不会被通用接口掩盖。
- 可选能力通过 Cargo feature 启用,未启用的服务依赖不会进入构建。
BootError与Result<T>统一表达模块、解析、路由、验证、传输与运行时失败。
Boot 管什么
Boot 管理应用图、执行顺序和适配器契约。它不替应用选择部署策略。
选择入口
BootFactory 提供四类常见入口:
create构建可提供 HTTP 服务的应用。create_application_context构建只有 Provider 的 worker 或命令进程。create_microservice构建独立消息服务。- 对应的 async 变体会等待异步 Provider factory。
同一个模块图也可以通过 BootApplication::builder() 显式配置全局增强器、OpenAPI 与适配器选项。
当前文档版本
你正在阅读 A3S Boot v0.1.4,对应 crate 版本 0.1.4。v0.2.0 与 v0.1.4 的公共 Boot 能力相同,发布差异是持久化 PostgreSQL 队列所使用的 A3S ORM 版本。
下一步
先查看安装与 feature,再完成快速开始。准备拆分业务模块时,继续阅读应用模型。