#connection-pool #rocket-web #rocket #pool #rocket-framework #framework

rocket_sync_db_pools

Rocket 异步数据库连接池支持同步数据库驱动程序

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 1455/week @ 2024-03-24 1821/week @ 2024-03-31 1478/week @ 2024-04-07 1637/week @ 2024-04-14 1562/week @ 2024-04-21 1409/week @ 2024-04-28 1252/week @ 2024-05-05 1463/week @ 2024-05-12 1707/week @ 2024-05-19 1416/week @ 2024-05-26 1532/week @ 2024-06-02 1106/week @ 2024-06-09 1273/week @ 2024-06-16 1491/week @ 2024-06-23 1294/week @ 2024-06-30 961/week @ 2024-07-07

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