5 releases
| 0.2.0 | May 23, 2024 |
|---|---|
| 0.1.0 | Nov 17, 2023 |
| 0.1.0-rc.4 | Nov 2, 2023 |
| 0.1.0-rc.3 | Mar 24, 2023 |
| 0.1.0-rc.2 | May 9, 2022 |
#12 in #rocket-framework
12,284 downloads per month
Used in 20 crates
(18 directly)
1MB
14K
SLoC
db_pools

Asynchronous database driver integration for Rocket. See the crate docs for full usage details.
Usage
-
Add
rocket_db_poolsas a dependency with one or more database driver features enabled:[dependencies.rocket_db_pools] version = "0.2.0" features = ["sqlx_sqlite"] -
Choose a name for your database, here
sqlite_logs. Configure at least a URL for the database:[default.databases.sqlite_logs] url = "/path/to/database.sqlite" -
Derive
Databasefor a unit type (Logshere) which wraps the selected driver'sPooltype and is decorated with#[database("name")]. AttachType::init()to your application'sRocketto initialize the database pool:use rocket_db_pools::{Database, Connection}; #[derive(Database)] #[database("sqlite_logs")] struct Logs(sqlx::SqlitePool); #[launch] fn rocket() -> _ { rocket::build().attach(Logs::init()) } -
Use
Connection<Type>as a request guard to retrieve an active database connection:#[get("/<id>")] async fn read(mut db: Connection<Logs>, id: i64) -> Result<Log> { sqlx::query!("SELECT content FROM logs WHERE id = ?", id) .fetch_one(&mut *db) .map_ok(|r| Log(r.content)) .await }
Dependencies
~18–64MB
~1M SLoC