17个版本

0.8.0 2023年1月22日
0.7.0 2021年1月13日
0.6.0 2020年11月14日
0.5.0 2020年1月9日
0.3.0 2019年11月30日

#2357 in 数据库接口

Download history • Rust 包仓库 337/week @ 2024-03-11 • Rust 包仓库 258/week @ 2024-03-18 • Rust 包仓库 53/week @ 2024-03-25 • Rust 包仓库 237/week @ 2024-04-01 • Rust 包仓库 104/week @ 2024-04-08 • Rust 包仓库 111/week @ 2024-04-15 • Rust 包仓库 146/week @ 2024-04-22 • Rust 包仓库 86/week @ 2024-04-29 • Rust 包仓库 82/week @ 2024-05-06 • Rust 包仓库 106/week @ 2024-05-13 • Rust 包仓库 125/week @ 2024-05-20 • Rust 包仓库 86/week @ 2024-05-27 • Rust 包仓库 121/week @ 2024-06-03 • Rust 包仓库 72/week @ 2024-06-10 • Rust 包仓库 109/week @ 2024-06-17 • Rust 包仓库 77/week @ 2024-06-24 • Rust 包仓库

每月下载量 391
2 crates 中使用

MIT/Apache

13KB

mobc-postgres

Build Status crates.io

文档

示例

use mobc::Pool;
use std::str::FromStr;
use std::time::Instant;
use mobc_postgres::PgConnectionManager;
use tokio_postgres::Config;
use tokio_postgres::NoTls;


#[tokio::main]
async fn main() {
    let config = Config::from_str("postgres://user:passwd@localhost:5432").unwrap();
    let manager = PgConnectionManager::new(config, NoTls);
    let pool = Pool::builder().max_open(20).build(manager);
    const MAX: usize = 5000;

    let now = Instant::now();
    let (tx, mut rx) = tokio::sync::mpsc::channel::<usize>(16);
    for i in 0..MAX {
        let pool = pool.clone();
        let mut tx_c = tx.clone();
        tokio::spawn(async move {
            let client = pool.get().await.unwrap();
            let rows = client.query("SELECT 1 + 2", &[]).await.unwrap();
            let value: i32 = rows[0].get(0);
            assert_eq!(value, 3);
            tx_c.send(i).await.unwrap();
        });
    }
    for _ in 0..MAX {
        rx.recv().await.unwrap();
    }

    println!("cost: {:?}", now.elapsed());
}

依赖

~9–20MB
~283K SLoC