Sea-orm, diesel, sqlx 比较
很多人不知道怎么选。有位小哥深入尝试之后,做了一下比较总结。
这篇文章详细比较了三种Rust数据库ORM(Object-Relational Mapping)库:sea-orm、diesel和sqlx,并分享了作者在使用它们过程中的一些体验和看法。
sea-orm:
优点:
提供了强大的查询API和兼容性。
依赖管理存在设计上的缺陷,导致同一个实体之间的多重关系处理不方便。
近期的PR#2179大大改进了API的便利性。
使用sea-query作为后备,组合查询比diesel简单。
迁移操作更灵活,使用Rust代码而非纯SQL文件。
文档丰富,但一些边缘情况未覆盖。
缺点:
关系API较弱,只能加载一个实体及其关联的实体。
sea-orm与sea-query的互操作性有待提升。
diesel:
优点:
能够轻松选择多个连接实体,使用元组进行选择。
通过严格的类型系统在编译时避免无效查询。
缺点:
构建跨函数边界的查询十分耗时