#sqlite #r2d2 #pool #r2d2-sqlite

hc_r2d2_sqlite

SQLite and SQLCipher support for the r2d2 connection pool

2 unstable releases

0.25.0 Aug 22, 2024
0.24.0 Jun 7, 2024

#1637 in Database interfaces

Download history 113/week @ 2024-12-26 455/week @ 2025-01-02 723/week @ 2025-01-09 546/week @ 2025-01-16 599/week @ 2025-01-23 336/week @ 2025-01-30 687/week @ 2025-02-06 667/week @ 2025-02-13 517/week @ 2025-02-20 661/week @ 2025-02-27 430/week @ 2025-03-06 840/week @ 2025-03-13 958/week @ 2025-03-20 922/week @ 2025-03-27 809/week @ 2025-04-03 664/week @ 2025-04-10

3,557 downloads per month
Used in 29 crates (via holochain_sqlite)

MIT license

9KB
102 lines

r2d2-sqlite

Latest Version Build Status MIT licensed

r2d2 connection pool for sqlite based on Steven Fackler's r2d2-postgres.

Documentation


lib.rs:

Sqlite support for the r2d2 connection pool.

Library crate: r2d2-sqlite

Integrated with: r2d2 and rusqlite

Example

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()
}

Dependencies

~29MB
~465K SLoC