10 个版本 (破坏性更新)
0.8.1 | 2024年5月14日 |
---|---|
0.8.0 | 2024年3月31日 |
0.7.0 | 2023年11月14日 |
0.5.0 | 2022年7月18日 |
0.1.0 | 2021年5月30日 |
#2103 in 数据库接口
6,587 每月下载量
在 18 个crate中使用 (直接使用 9 个)
93KB
1.5K SLoC
Deadpool是一个简单的异步连接和任意类型对象的池。
Deadpool是一个用于rusqlite的简单异步池。
此crate实现了rusqlite的deadpool
管理器,并提供了包装器以确保在单独的线程中正确使用连接。
特性
特性 | 描述 | 额外依赖项 | 默认 |
---|---|---|---|
rt_tokio_1 |
启用对tokio crate的支持 | deadpool/rt_tokio_1 |
是 |
rt_async-std_1 |
启用对async-std crate的支持 | deadpool/rt_async-std_1 |
否 |
serde |
启用对serde crate的支持 | deadpool/serde , serde/derive |
否 |
tracing |
通过在interact() 调用中传播Spans来启用对tracing的支持。如果您使用tracing crate并且希望在interact() 调用中获取有用的跟踪,则启用此功能。 |
deadpool-sync/tracing , tracing |
否 |
示例
use deadpool_sqlite::{Config, Runtime};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut cfg = Config::new("db.sqlite3");
let pool = cfg.create_pool(Runtime::Tokio1).unwrap();
let conn = pool.get().await.unwrap();
let result: i64 = conn
.interact(|conn| {
let mut stmt = conn.prepare("SELECT 1")?;
let mut rows = stmt.query([])?;
let row = rows.next()?.unwrap();
row.get(0)
})
.await??;
assert_eq!(result, 1);
Ok(())
}
许可证
根据以下许可证之一许可:
- Apache许可证版本2.0(《LICENSE-APACHE》或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
根据您的选择。
依赖关系
~23-34MB
~554K SLoC