bb8-ldap 0.4.1

A bb8 connection pool manager for ldap3 async LDAP connections
Documentation
# bb8-ldap

`bb8-ldap` provides a [`bb8`](https://crates.io/crates/bb8) connection manager for [`ldap3`](https://crates.io/crates/ldap3) so that LDAP connections can be pooled and reused in asynchronous Rust applications. The manager handles creating new `ldap3::Ldap` connections and validating them before they are returned to the pool, making it easy to integrate LDAP authentication or directory lookups into services that already rely on `bb8`.

## Example

```rust
use bb8::Pool;
use bb8_ldap::LdapConnectionManager;
use ldap3::LdapConnSettings;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Configure the manager with the LDAP URL (StartTLS can be configured via LdapConnSettings).
    let manager = LdapConnectionManager::new("ldap://localhost:1389")?
        .with_connection_settings(
            LdapConnSettings::new()
                .set_starttls(false) // customize as needed
        )
        .with_bind_credentials("cn=admin,dc=example,dc=org", "admin")
        .with_connect_timeout(std::time::Duration::from_secs(3))
        .with_validation_timeout(std::time::Duration::from_secs(2))
        .with_validation_search(
            "dc=example,dc=org",
            ldap3::Scope::Subtree,
            "(objectClass=*)",
            vec!["cn", "mail"],
        );

    // Build a pool with default settings.
    let pool = Pool::builder().max_size(15).build(manager).await?;

    // Fetch a connection from the pool and perform an LDAP search.
    let mut conn = pool.get().await?;
    let (results, _res) = conn
        .search(
            "ou=users,dc=example,dc=org",
            ldap3::Scope::Subtree,
            "(cn=alice)",
            vec!["cn", "mail"],
        )
        .await?
        .success()?;

    println!("Found {} entries", results.len());
    Ok(())
}
```

## Features

- `tls-native`: Enable native TLS support in `ldap3` (use with `--no-default-features`).
- `tls-rustls-aws-lc-rs` (default): Enable rustls + aws-lc-rs provider in `ldap3`.
- `tls-rustls-ring`: Enable rustls + ring provider in `ldap3`.

## License

This project is licensed under the [MIT License](LICENSE-MIT).