宣布 Toasty,一个用于 Rust 的异步 ORM | Tokio

  • 主要观点:Toasty 是 Rust 语言的异步 ORM,注重易用性,支持 SQL 和 NoSQL 数据库,目前处于早期开发阶段,可通过创建模式文件定义数据模型,使用 Toasty CLI 工具生成 Rust 代码,旨在填补 Rust ORM 库的空白,提高开发效率。
  • 关键信息

    • Toasty 支持 DynamoDB 和 Cassandra(即将支持)等数据库。
    • 开发阶段为早期,暂未在 crates.io 发布,已开源在 Github 上,欢迎反馈。
    • 可通过创建模式文件定义数据模型,如hello-toasty/schema.toasty文件中的示例。
    • 使用 Toasty CLI 工具可生成处理数据模型的 Rust 代码,示例代码在examples/hello-toasty/src/db
    • 探讨了为何需要 ORM,认为 Rust 生态在高级 Web 应用方面的 ORM 库较少,Toasty 旨在填补这一空白,注重易用性而非性能最大化。
    • 介绍了使 ORM 易用的方法,如尽量减少使用 trait 和 lifetime,不使用过程宏生成代码,而是通过显式代码生成步骤生成可读的代码,以便用户发现生成的方法。
    • Toasty 支持 SQL 和 NoSQL 数据库,但不抽象底层数据库,会基于选择生成数据库特定的功能和避免低效查询。
    • 下一步是填补空白,准备明年年底使 Toasty 可用于实际生产,欢迎在 Tokio Discord 的#toasty 频道讨论或在 Github 上创建问题。
  • 重要细节

    • 示例中创建用户并添加待办事项、从数据库加载用户及用户的待办事项等操作的代码片段。
    • 对 ORM 易用性的讨论,包括对 trait 和 lifetime 的使用以及代码生成方式的选择。
    • 关于 Toasty 支持的数据库及未来添加支持的计划。
阅读 27
0 条评论