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" ] }
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 and MariaDBsqlx-postgres- SQLx PostgreSQLsqlx-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:
ASYNC_RUNTIMEcan beactix,async-std, ortokioTLS_LIBcan either benative-tlsorrustls
- Choose the ASYNC_RUNTIME corresponding to your Rust web framework:
| ASYNC_RUNTIME | Web Framework |
|---|---|
actix | Actix |
async-std | Tide |
tokio | Axum, Rocket, Poem |
native-tlsuses the platform's native security facilities, whilerustlsis a pure Rust implementation.
Extra features
debug-print - print every SQL statement to logger
mock - mock interface for unit testing