#sql-server #server-connection #connection-pool #async-pool

deadpool-tiberius

Async ms sql server connection pool simple impl of deadpool

9 releases

0.1.8 Mar 20, 2024
0.1.7 Jan 16, 2024
0.1.6 Nov 1, 2023
0.1.5 Oct 19, 2023
0.1.2 Jun 11, 2023

#10 in #async-pool

Download history 35/week @ 2024-06-12 9/week @ 2024-06-19 7/week @ 2024-06-26 22/week @ 2024-07-03 14/week @ 2024-07-10 19/week @ 2024-07-17 60/week @ 2024-07-24 40/week @ 2024-07-31 28/week @ 2024-08-07 97/week @ 2024-08-14 27/week @ 2024-08-21 27/week @ 2024-08-28 42/week @ 2024-09-04 67/week @ 2024-09-11 81/week @ 2024-09-18 110/week @ 2024-09-25

304 downloads per month
Used in ssql

MIT/Apache

19KB
272 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

~8–20MB
~354K SLoC