5 个版本

0.1.0 2023 年 11 月 17 日
0.1.0-rc.42023 年 11 月 2 日
0.1.0-rc.32023 年 3 月 24 日
0.1.0-rc.22022 年 5 月 9 日
0.1.0-rc.12021 年 6 月 9 日

#2052数据库接口

Download history • Rust 包仓库 1455/week @ 2024-03-24 • Rust 包仓库 1821/week @ 2024-03-31 • Rust 包仓库 1478/week @ 2024-04-07 • Rust 包仓库 1637/week @ 2024-04-14 • Rust 包仓库 1562/week @ 2024-04-21 • Rust 包仓库 1409/week @ 2024-04-28 • Rust 包仓库 1252/week @ 2024-05-05 • Rust 包仓库 1463/week @ 2024-05-12 • Rust 包仓库 1707/week @ 2024-05-19 • Rust 包仓库 1416/week @ 2024-05-26 • Rust 包仓库 1532/week @ 2024-06-02 • Rust 包仓库 1106/week @ 2024-06-09 • Rust 包仓库 1273/week @ 2024-06-16 • Rust 包仓库 1491/week @ 2024-06-23 • Rust 包仓库 1294/week @ 2024-06-30 • Rust 包仓库 961/week @ 2024-07-07 • Rust 包仓库

5,205 每月下载量
用于 10 个包(其中 9 个直接使用)

MIT/Apache

1MB
14K SLoC

sync_db_pools ci.svg crates.io docs.svg

该包提供用于配置和访问 Rocket 中数据库连接池的 trait、实用工具和过程宏。此实现由 r2d2 支持,并通过请求守卫公开连接。

用法

首先,启用与您的数据库类型对应的特性

[dependencies.rocket_sync_db_pools]
version = "0.1.0"
features = ["diesel_sqlite_pool"]

支持的所有数据库及其关联的特性名称的完整列表可在 包文档 中找到。在您选择的任何配置源中,配置一个 databases 字典,其中每个数据库都有一个键,这里在 TOML 源中使用 sqlite_logs

[default.databases]
sqlite_logs = { url = "/path/to/database.sqlite" }

在您的应用程序源代码中

#[macro_use] extern crate rocket;

use rocket_sync_db_pools::{database, diesel};

#[database("sqlite_logs")]
struct LogsDbConn(diesel::SqliteConnection);

#[get("/logs/<id>")]
async fn get_logs(conn: LogsDbConn, id: usize) -> Result<Logs> {
    conn.run(|c| Logs::by_id(c, id)).await
}

#[launch]
fn rocket() -> _ {
    rocket::build().attach(LogsDbConn::fairing())
}

有关详细信息,请参阅 包文档

依赖项

~14–50MB
~874K SLoC