11 个不稳定版本 (5 个重大更改)
0.6.1 | 2024年5月4日 |
---|---|
0.6.0 | 2024年3月31日 |
0.5.0 | 2023年9月26日 |
0.4.1 | 2022年12月9日 |
0.1.2 | 2021年7月16日 |
#1962 in 数据库接口
12,491 每月下载量
99KB
1.5K SLoC
Deadpool 是一个用于连接和任何类型对象的简单异步池。
Deadpool 是一个简单的异步池,用于数据库连接。
该库实现了对 deadpool
管理器的 diesel
连接的支持。
特性
特性 | 描述 | 额外依赖 | 默认 |
---|---|---|---|
sqlite |
在 diesel 库中启用 sqlite 特性 |
diesel/sqlite |
无 |
postgres |
在 diesel 库中启用 postgres 特性 |
diesel/postgres |
无 |
mysql |
在 diesel 库中启用 mysql 特性 |
diesel/mysql |
无 |
rt_tokio_1 |
启用对 tokio 库的支持 | deadpool/rt_tokio_1 |
是 |
rt_async-std_1 |
启用对 async-std 库的支持 | deadpool/rt_async-std_1 |
无 |
serde |
启用对 serde 库的支持 | deadpool/serde |
无 |
tracing |
通过在 interact() 调用中传播 Spans 来启用对 tracing 的支持。如果您使用 tracing 库并在 interact() 调用中想要获取有用的跟踪信息,请启用此特性。 |
deadpool-sync/tracing , tracing |
无 |
示例
use deadpool_diesel::sqlite::{Runtime, Manager, Pool};
use diesel::{prelude::*, select, sql_types::Text};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let manager = Manager::new(":memory:", Runtime::Tokio1);
let pool = Pool::builder(manager)
.max_size(8)
.build()
.unwrap();
let conn = pool.get().await?;
let result = conn.interact(|conn| {
let query = select("Hello world!".into_sql::<Text>());
query.get_result::<String>(conn)
}).await??;
assert!(result == "Hello world!");
Ok(())
}
许可证
许可协议为以下之一
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选其中一种。
依赖项
~5–23MB
~294K SLoC