Databases

Rust support for databases occurs on multiple levels, from direct drivers to ORMs. Some of the crates are async and some not, which modifies how other code will has to interact with them.

Database drivers and bindingsEdit

 postgres - includes tokio_postgres for async operations and Postgres pub/sub.

 rusqlite - sqlite

 mysql

 redis

ORMsEdit

 diesel is popular, strongly typed ORM. Supports sqlite, Postgres, and mysql.

diesel does not natively support async operations at this time.[1]  tokio-diesel and  async-diesel provide async shims that integrate with tokio and async-std runtimes respectively.

Table for SQL types in diesel: https://kotiri.com/2018/01/31/postgresql-diesel-rust-types.html

OtherEdit

 sqlx is a newer crate that supports type checked SQL queries. Fully async and supports Postgres pub/sub.

Connection poolingEdit

 r2d2

 deadpool

ReferencesEdit