Skip to main content

Database & Async Runtime

First, add sea-orm to the [dependencies] section of your Cargo.toml.

Cargo.toml
sea-orm = { version = "^0", features = [ DATABASE_DRIVER, ASYNC_RUNTIME, "macros" ], default-features = false }

You must choose a DATABASE_DRIVER and an ASYNC_RUNTIME. macros is needed if you use SeaORM's generated entities (most likely).

DATABASE_DRIVER#

You can choose one or more from:

  • sqlx-mysql - SQLx MySQL
  • sqlx-postgres - SQLx Postgres
  • sqlx-sqlite - SQLx SQLite

See also: SQLx docs.

ASYNC_RUNTIME#

You have to choose one from:

runtime-actix-native-tls, runtime-async-std-native-tls, runtime-tokio-native-tls, runtime-actix-rustls, runtime-async-std-rustls, runtime-tokio-rustls

Basically, they are in the form of runtime-ASYNC_RUNTIME-TLS_LIB:

Tip 1: Rocket uses tokio, Actix uses actix, Tide uses async-std

Tip 2: native-tls uses platform's native security facilities, while rustls is a pure Rust implementation

Extra features#

debug-print - print every SQL statement to logger

mock - mock interface for unit testing