djc/bb8
Fork: 109 Star: 758 (更新于 2024-10-24 17:39:24)
license: MIT
Language: Rust .
Full-featured async (tokio-based) postgres connection pool (like r2d2)
最后发布版本: v0.8.5 ( 2024-06-14 21:33:59)
bb8
A full-featured connection pool, designed for asynchronous connections (using tokio). Originally based on r2d2.
Opening a new database connection every time one is needed is both inefficient and can lead to resource exhaustion under high traffic conditions. A connection pool maintains a set of open connections to a database, handing them out for repeated use.
bb8 is agnostic to the connection type it is managing. Implementors of the
ManageConnection
trait provide the database-specific logic to create and
check the health of connections.
A (possibly not exhaustive) list of adapters for different backends:
Backend | Adapter Crate |
---|---|
tokio-postgres | bb8-postgres (in-tree) |
redis | bb8-redis (in-tree) |
redis_cluster_async | bb8-redis-cluster |
rsmq | rsmq_async |
bolt-client | bb8-bolt |
diesel | bb8-diesel |
tiberius | bb8-tiberius |
nebula-client | bb8-nebula |
memcache-async | bb8-memcached |
lapin | bb8-lapin |
arangors | bb8-arangodb |
Example
Using an imaginary "foodb" database.
#[tokio::main]
async fn main() {
let manager = bb8_foodb::FooConnectionManager::new("localhost:1234");
let pool = bb8::Pool::builder()
.max_size(15)
.build(manager)
.await
.unwrap();
for _ in 0..20 {
let pool = pool.clone();
tokio::spawn(async move {
let conn = pool.get().await.unwrap();
// use the connection
// it will be returned to the pool when it falls out of scope.
});
}
}
License
Licensed under the MIT license (LICENSE).
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.
最近版本更新:(数据更新于 2024-10-03 00:29:55)
2024-06-14 21:33:59 v0.8.5
2024-06-14 21:33:18 v0.8.4
2024-06-14 21:32:23 v0.8.3
2024-02-01 21:37:40 v0.8.2
2024-02-01 21:36:43 v0.8.1
2024-02-01 21:36:16 v0.8.0
2024-02-01 21:35:50 v0.7.1
2020-12-27 21:35:34 v0.7.0
2020-12-27 21:33:53 v0.6.2
2020-12-27 21:33:22 v0.5.2
主题(topics):
asynchronous, database, hacktoberfest, pooling, tokio
djc/bb8同语言 Rust最近更新仓库
2024-11-05 08:48:52 lapce/lapce
2024-11-04 19:47:57 dashpay/platform
2024-11-01 02:26:55 mediar-ai/screenpipe
2024-10-30 06:09:45 electric-capital/crypto-ecosystems
2024-10-29 10:21:58 rustdesk/rustdesk
2024-10-27 15:42:03 jtroo/kanata