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

deadpool-tiberius

异步 ms sql 服务器连接池,Deadpool 的简单实现

9 个版本

0.1.8 2024年3月20日
0.1.7 2024年1月16日
0.1.6 2023年11月1日
0.1.5 2023年10月19日
0.1.2 2023年6月11日

#2040数据库接口

Download history 33/week @ 2024-04-22 33/week @ 2024-04-29 29/week @ 2024-05-13 15/week @ 2024-05-20 29/week @ 2024-06-03 41/week @ 2024-06-10 16/week @ 2024-06-17 2/week @ 2024-06-24 23/week @ 2024-07-01 13/week @ 2024-07-08 22/week @ 2024-07-15 5/week @ 2024-07-22 78/week @ 2024-07-29 31/week @ 2024-08-05

每月下载 136
用于 ssql

MIT/Apache

19KB
272

Deadpool & Tiberius 简单实现

该crate作为tiberius和deadpool的连接器和重新导出器,使创建 SQL 服务器连接池更加容易。
如果你在寻找 SQL 服务器 ORM,请查看 ssql

完整文档请访问 doc.rs

示例,从 tiberius 和连接池配置中链式配置

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

依赖项

~8–20MB
~352K SLoC