| Crates.io | rocket_db_pools-community |
| lib.rs | rocket_db_pools-community |
| version | 0.3.2 |
| created_at | 2025-12-16 23:21:51.196954+00 |
| updated_at | 2026-01-20 18:45:38.940621+00 |
| description | Rocket async database pooling support. (Community Fork) |
| homepage | |
| repository | https://github.com/rwf2/Rocket/tree/master/contrib/db_pools |
| max_upload_size | |
| id | 1988911 |
| size | 158,614 |
db_pools Asynchronous database driver integration for Rocket. See the crate docs for full usage details.
Add rocket_db_pools as a dependency with one or more database driver
features enabled:
[dependencies.rocket_db_pools]
package = "rocket_db_pools-community"
version = "0.3.2"
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 Database for a unit type (Logs here) which
wraps the selected driver's Pool type and is decorated with
#[database("name")]. Attach Type::init() to your application's Rocket
to 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
}