SkillAgentSearch skills...

Bb8

Full-featured async (tokio-based) postgres connection pool (like r2d2)

Install / Use

/learn @djc/Bb8
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

bb8

Documentation Crates.io Build status codecov Chat License: MIT

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 | diesel_async tiberius | bb8-tiberius nebula-client | bb8-nebula memcache-async | bb8-memcached lapin | bb8-lapin arangors | bb8-arangodb tonic | bb8-tonic

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.

Related Skills

View on GitHub
GitHub Stars940
CategoryData
Updated3d ago
Forks133

Languages

Rust

Security Score

100/100

Audited on Apr 3, 2026

No findings