Database & Async Runtime
First, add sea-orm
to the [dependencies]
section of your Cargo.toml
.
Cargo.toml
sea-orm = { version = "^0.4", 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 and MariaDBsqlx-postgres
- SQLx Postgressqlx-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_RUNTIME
can beactix
,async-std
ortokio
TLS_LIB
can either benative-tls
orrustls
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