For AI agents: the complete documentation index is available at https://a3s-lab.github.io/ORM/v0.3.0/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/ORM/v0.3.0/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/ORM/v0.3.0/index.md.
  • 简体中文
  • v0.3.0
  • 类型约束查询,SQL 保持透明。

    用 Rust 类型组合查询,由方言生成参数化 SQL,并通过异步 SQLite 或 PostgreSQL 执行。

    类型化查询
    update_table::<Job>()
      .set(Job::state(), "leased")
      .filter(Job::id().eq(42))
      .returning(Job::id())
    编译结果
    update "jobs"
    set "state" = $1
    where "jobs"."id" = $2
    returning "jobs"."id"
    绑定参数[String("leased"), I64(42)]

    选择运行时,复制一行依赖。

    SQLite 默认启用。也可以只启用 PostgreSQL,或仅使用编译器。

    a3s-orm = { git = "https://github.com/A3S-Lab/ORM", tag = "v0.3.0" }

    查询结构由类型约束,执行边界保持显式。

    从表声明到结果解码,每一层只负责一个稳定契约。

    orm_table!

    类型化结构

    表、列、值、赋值和结果形状在编译期保持一致。

    Query

    不可变查询 AST

    连接、CTE、窗口、集合运算和锁都保留为结构化节点。

    Executor

    执行器中立

    编译器只生成 SQL 与参数,异步驱动只处理连接和行。

    Migrator

    确定性迁移

    有序版本、SHA-256 校验和数据库级锁共同保护历史。

    一条查询只沿一个方向流动。

    没有隐式持久化行为,也没有运行时值拼接进 SQL 文本。

    1. 01

      表与表达式

      Rust 类型定义合法组合

    2. 02

      查询 AST

      保留语义和参数边界

    3. 03

      方言编译器

      负责引号、占位符与能力检查

    4. 04

      异步执行器

      管理连接、事务与解码

    同一套查询契约,两种生产运行时。

    SQLite

    Tokio 安全的单连接执行器,默认 WAL、外键校验与取消安全事务。

    • 默认 feature
    • 嵌套 savepoint
    • BEGIN IMMEDIATE 迁移锁

    PostgreSQL

    有界连接池、预编译语句缓存、rustls、健康快照与明确的重试分类。

    • Deadpool 连接池
    • 事务策略与 advisory lock
    • TLS 连接池原子轮换
    比较驱动与方言

    生产边界写在文档里,也写进错误路径。

    阅读生产就绪说明
    • 不支持的方言语法在编译阶段返回错误。
    • 迁移是只向前的,并校验已应用历史。
    • SQLite 串行使用一个连接,PostgreSQL 使用有界池。
    • MySQL 当前只提供 SQL 编译,不提供内置运行时。

    从第一条可检查的查询开始。

    定义表,编译 SQL,再连接你选择的异步运行时。

    开始使用