宣布 rust-query | LHolten 的博客

主要观点:作者开发rust-query是为解决 Rust 中与数据库交互的现有选项问题,提供无需写 SQL 即可安全持久化数据、轻松编写复杂查询的方式。
关键信息:

  • rust-query与 Rust 类型系统深度集成,提供诸多关键特性,如显式表别名、空安全、直观聚合等。
  • 定义模式时使用枚举语法,可轻松迁移到不同模式,如添加用户邮箱地址的迁移示例。
  • 插入数据需使用可变事务,插入带唯一约束的表时用try_insert处理冲突。
  • 查询时通过连接、过滤等操作处理行,aggregate用于计算聚合。
  • 支持模式演化和类型检查的迁移,可在迁移中执行各种查询操作。
    重要细节:
  • SQL 是与数据库交互的标准,但作者认为应让计算机写 SQL。
  • rust-query的库 API 由#[schema]宏解析枚举语法生成。
  • 插入和更新带唯一约束的行会产生专门的错误类型。
  • 行引用与事务生命周期绑定,实际行号不暴露在库 API 中。
  • 目前rust-query仅以 SQLite 为后端,因其嵌入式特性适合开发阶段。
阅读 15
0 条评论