For AI agents: the complete documentation index is available at https://a3s-lab.github.io/Boot/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/Boot/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/Boot/index.md.
  • 简体中文
  • v0.2.0
  • 模块化应用。Rust 级控制。

    组合模块、Provider、Controller 与协议管线,同时保留适配器和运行时边界。

    注册入口
    #[controller("/users")]
    impl UserController {
      #[get("/{id}")]
      async fn find(#[param("id")] id: Uuid) {}
    }
    执行阶段
    1. 01Middleware
    2. 02Guard
    3. 03Interceptor
    4. 04Pipe
    5. 05Handler

    默认即可启动,按需打开能力。

    默认包含 Axum、属性宏和优雅停机。其他模块全部通过 feature 显式启用。

    a3s-boot = "0.2.0"

    熟悉的模块边界,明确的 Rust 所有权。

    Boot 借鉴 NestJS 的组织方式,但不会隐藏依赖图、协议适配器或错误类型。

    ModuleRef

    模块与依赖注入

    可见性、导入导出、scope、异步 factory 和生命周期都进入类型化容器。

    #[controller]

    Controller 与宏

    普通 Rust 类型通过属性生成注册,同时保留显式 builder API。

    ExecutionContext

    确定性请求管线

    Middleware、Guard、Interceptor、Pipe、验证和 Filter 有固定顺序。

    MessageTransport

    多协议执行模型

    HTTP、WebSocket 与消息传输共享 scope、验证和增强器语义。

    从模块声明到可服务应用,只有四个阶段。

    每个阶段都能被测试、检查和替换。

    1. 01

      声明边界

      模块列出 Provider、Controller、Gateway 与导入

    2. 02

      编译图

      验证 token、可见性、scope 与路由冲突

    3. 03

      解析实例

      按 singleton、request 或 transient 构造依赖

    4. 04

      连接适配器

      由 Axum 或消息 transport 接管网络边界

    一个应用核心,面向多种入口。

    应用与技术模块

    配置、日志、缓存、数据库、会话、安全、CQRS、事件、调度、健康与文件能力按需组合。

    • Provider-first 设计
    • 全局与局部增强器
    • 测试模块覆盖

    协议与后台工作

    HTTP、WebSocket、TCP、Redis、NATS、MQTT、RabbitMQ、Kafka、gRPC、队列与 iLink 使用明确契约。

    • 适配器可替换
    • 协议专属上下文
    • 交付语义不被抽象掩盖
    浏览所有能力

    框架提供机制,部署策略仍由应用决定。

    阅读生产边界
    • 默认 HTTP 适配器是 Axum,核心应用模型不依赖 Axum。
    • 可选 feature 不会在未启用时引入对应服务依赖。
    • 队列是至少一次交付,业务处理器必须保持幂等。
    • 分布式限流、broker durability 与 secret 存储由部署选择。

    从一个模块和一条路由开始。

    先运行默认 Axum 应用,再按业务边界启用模块与协议。

    开始使用