For AI agents: the complete documentation index is available at https://a3s-lab.github.io/ORM/v0.2.0/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/ORM/v0.2.0/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/ORM/v0.2.0/getting-started/overview.md.
  • 简体中文
  • v0.2.0
  • 概览

    A3S ORM 是一个受 Kysely 启发的 Rust 类型安全 SQL 查询构建器。它让表声明约束列、值、赋值与解码结果,同时让实际 SQL、绑定参数和执行时机保持可见。

    它不是 Active Record 框架。记录不拥有持久化方法,查询不会在访问字段时自动执行,运行时值也不会被插入 SQL 文本。

    核心数据流

    类型化表与表达式
            |
      不可变查询 AST
            |
        方言编译器
            |
     SQL + 绑定参数
            |
    异步 Executor 与驱动

    每一层只拥有一类责任:

    层负责不负责
    Schema 与 Expression表身份、列所有权、值族和合法比较SQL 方言与连接
    QuerySELECT、INSERT、UPDATE、DELETE 及其结构打开数据库连接
    Dialect标识符引号、占位符、能力检查事务与行解码
    Executor异步执行、事务、连接与驱动行理解构建器类型状态
    Decode从驱动中立值安全转换结果隐式修正不兼容类型

    可以依赖的保证

    • 列只能用于拥有它的表或显式别名。
    • 比较、赋值和插入值必须属于兼容的 Rust 与 SQL 值族。
    • 动态值只能通过绑定参数进入编译结果。
    • 不支持的方言能力会返回错误,不会生成近似语法。
    • CTE、子查询、窗口和外层查询共享同一个参数编号序列。
    • Database 区分构建错误、执行错误、解码错误、无行和多行结果。

    v0.2.0 尚未提供类型化 UPDATE CTE、UPDATE FROM 与 set_expression。需要原子 worker claim 时,请使用经过审查的静态 sql_query,或升级到 v0.3.0。

    方言与运行时

    能力PostgreSQLSQLiteMySQL
    SQL 编译支持支持支持
    内置异步驱动支持支持不提供
    RETURNING支持支持拒绝
    ON CONFLICT支持支持拒绝
    行锁与表锁支持拒绝拒绝
    事务支持支持不提供
    锁定迁移advisory lockBEGIN IMMEDIATE不提供

    SQLite 是默认 feature。PostgreSQL 使用有界 Deadpool 连接池,并提供事务策略、TLS、健康快照与重试分类。MySQL 目前只包含编译器。

    下一步

    先阅读安装与 feature,再完成快速开始。部署前请核对架构与生产边界。