#连接池 #sqlite #r2d2 # #连接管理器

hc_r2d2_sqlite

为 r2d2 连接池提供 SQLite 和 SQLCipher 支持

2 个不稳定版本

新增 0.25.0 2024 年 8 月 22 日
0.24.0 2024 年 6 月 7 日

数据库接口 中排名 1909

Download history 268/week @ 2024-06-06 191/week @ 2024-06-13 180/week @ 2024-06-20 258/week @ 2024-06-27 518/week @ 2024-07-04 323/week @ 2024-07-11 407/week @ 2024-07-18 425/week @ 2024-07-25 720/week @ 2024-08-01 517/week @ 2024-08-08 560/week @ 2024-08-15

每月下载量 2,331
23 个 Crates 中使用 (通过 holochain_sqlite)

MIT 许可证

9KB
102

r2d2-sqlite

Latest Version Build Status MIT licensed

基于 Steven Fackler 的 r2d2-postgres 开发的 r2d2 连接池的 sqlite 实现。

文档


lib.rs:

为 r2d2 连接池提供 sqlite 支持。

库 Crates: r2d2-sqlite

集成: r2d2rusqlite

示例

extern crate r2d2;
extern crate r2d2_sqlite;
extern crate rusqlite;

use std::thread;
use r2d2_sqlite::SqliteConnectionManager;
use rusqlite::params;

fn main() {
    let manager = SqliteConnectionManager::file("file.db");
    let pool = r2d2::Pool::new(manager).unwrap();
    pool.get()
        .unwrap()
        .execute("CREATE TABLE IF NOT EXISTS foo (bar INTEGER)", params![])
        .unwrap();

    (0..10)
        .map(|i| {
            let pool = pool.clone();
            thread::spawn(move || {
                let conn = pool.get().unwrap();
                conn.execute("INSERT INTO foo (bar) VALUES (?)", &[&i])
                    .unwrap();
            })
        })
        .collect::<Vec<_>>()
        .into_iter()
        .map(thread::JoinHandle::join)
        .collect::<Result<_, _>>()
        .unwrap()
}

依赖项

~28MB
~454K SLoC