| Crates.io | rkt_db_pools_codegen |
| lib.rs | rkt_db_pools_codegen |
| version | 0.3.2 |
| created_at | 2026-01-24 17:47:50.27872+00 |
| updated_at | 2026-01-24 17:47:50.27872+00 |
| description | Procedural macros for rkt_db_pools. |
| homepage | |
| repository | https://github.com/rustfoo/rkt/tree/main/contrib/db_pools |
| max_upload_size | |
| id | 2067078 |
| size | 41,570 |
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
}