#sql-server #tiberius #async-database #async

deadpool-tiberius

Async ms sql server connection pool simple impl of deadpool

10 releases

new 0.1.9 Apr 11, 2025
0.1.8 Mar 20, 2024
0.1.7 Jan 16, 2024
0.1.6 Nov 1, 2023
0.1.2 Jun 11, 2023

#834 in Database interfaces

Download history 56/week @ 2024-12-25 37/week @ 2025-01-01 36/week @ 2025-01-08 37/week @ 2025-01-15 62/week @ 2025-01-22 99/week @ 2025-01-29 64/week @ 2025-02-05 71/week @ 2025-02-12 77/week @ 2025-02-19 105/week @ 2025-02-26 119/week @ 2025-03-05 114/week @ 2025-03-12 107/week @ 2025-03-19 81/week @ 2025-03-26 52/week @ 2025-04-02 386/week @ 2025-04-09

647 downloads per month
Used in 2 crates

MIT/Apache

22KB
262 lines

Deadpool & Tiberius simple impl

This crate served as connector and re-exporter of tiberius && deadpool to make create sql server connection pool easier.
If you are looking for sql server ORM, take a look at ssql.

For full documentation pls visit doc.rs.

Example, chaining configs from tiberius and configs from pooling

use deadpool_tiberius;

#[tokio::main]
async fn main() -> deadpool_tiberius::SqlServerResult<()> {
    let pool = deadpool_tiberius::Manager::new()
        .host("localhost") // default to localhost
        .port(1433) // default to 
        .basic_authentication("username", "password")
        //  or .authentication(tiberius::AuthMethod)
        .database("database1")
        .trust_cert()
        .max_size(10)
        .wait_timeout(1.52)  // in seconds, default to no timeout
        .pre_recycle_sync(|_client, _metrics| {
            // do sth with client object and pool metrics
            Ok(())
        })
        .create_pool()?;

    let mut conn = pool.get().await?;
    let rows = conn.simple_query("SELECT 1");

    // Or construct server connection config from ADO string.
    const CONN_STR: &str = "Driver={SQL Server};Integrated Security=True;\
                            Server=DESKTOP-TTTTTTT;Database=master;\
                            Trusted_Connection=yes;encrypt=DANGER_PLAINTEXT;";
    let _pool = deadpool_tiberius::Manager::from_ado_string(CONN_STR)
        .max_size(20)
        .create_pool()?;
}

Dependencies

~9–22MB
~368K SLoC