Rust语言项目与PostgreSQL交互首选工具

在Rust项目中与PostgreSQL交互,tokio-postgres、sqlx和Diesel是常用选择。本文对比了它们在编译时安全、SQL与DSL、异步与同步方面的特点。Diesel提供编译时错误检查和DSL,sqlx通过宏在编译时验证SQL,而tokio-postgres则在运行时检查。sqlx和tokio-postgres支持异步,Diesel为同步。对于复杂查询,Diesel的DSL更利于复用,但有时可能难以表达。选择取决于项目需求,作者个人倾向于sqlx。
摘要由CSDN通过智能技术生成

当前,在Rust项目中与PostgreSQL交互时,有三个主要首选目标:

  • tokio-postgres
  • sqlx
  • Diesel

此三项均广受欢迎,已被很多网站与产品采用,在商用中占有相当大的份额。 如果是您会选哪一个?
我们来根据三个条件进行对比:

  • 编译时安全
  •  SQL VS DSL
  • 异步 VS 同步

编译时安全与关系数据库交互时很容易出错,例如:

  • 查询中列(column)或表(table)名称拼写错误
  • 执行操作被数据库引擎拒绝(将一个字符串和一个数字相加或在错误的列上连接两个表)
  • 返回的数据中有一个实际上不存在的字段

最主要的问题是,我们不知不觉中什么时候弄错也不知道。

在使用tokio-postgres时与大多数编程语言一样会发生这样的情况;在运行时我们试着查询而被数据库拒绝,此时我们将看到出错或异常。

Dieselsqlx通过在编译时检测大多数所提这些错误来加快反馈周期。Diesel利用其CLI将数据库模式表示生成为Rust代码,然后预设用于检查所有查询。

相反,sqlx使用程序宏在编译时连接到数据库并检查所提供查

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值