文盘Rust -- 安全连接 TiDB/Mysql

💡 原文中文,约8900字,阅读约需22分钟。
📝

内容提要

京东科技贾世闻折腾Rust与数据库集成,选择Tidb Cloud Serverless Tier作为数据源,支持MysqlCli、MyCli、JDBC、Python、golang以及Nodejs,但没有Rust的代码,新建一个Rbatis struct,构建rbdc_mysql::options::MySqlConnectOptions,支持mysql rust driver、sqlx、SeaORM、Rbatis等Rust连接MySQL的主流方式。

🎯

关键要点

  • 京东科技贾世闻在研究Rust与数据库集成,选择Tidb Cloud Serverless Tier作为数据源。
  • Tidb是近年来优秀的国产开源分布式数据库,Tidb Cloud Serverless Tier方便且经济。
  • Tidb Cloud Serverless Tier支持多种主流客户端和编程语言的连接代码,但不支持Rust。
  • 为了安全连接,Tidb Cloud Serverless Tier只支持安全连接,Rust的数据库驱动和ORM文档缺乏详细描述。
  • 提供了Rust连接MySQL的主流方式的安全连接代码,包括rust-mysql-simple、sqlx、SeaORM和Rbatis。
  • rust-mysql-simple是纯Rust实现的MySQL驱动,使用SslOpts和OptsBuilder生成连接配置。
  • sqlx是异步SQL Crate,支持Rust编写的异步操作,使用MySqlPoolOptions进行连接。
  • SeaORM是基于sqlx构建的ORM框架,依赖sqlx进行数据库操作。
  • Rbatis是一个集成了rbdc的Rust框架,支持MySQL连接,使用MySqlConnectOptions进行配置。
  • 作者尝试使用Diesel建立MySQL安全连接,但因编译失败而放弃。
  • SeaORM和Rbatis的使用体验不同,SeaORM构建实体较复杂,而Rbatis构建实体较简单。
  • Rbatis作为rbdc的衍生项目,旨在为Rust生态提供类似JDBC的功能。
➡️

继续阅读