#boilerplate #tls #rustls #server #resource-dependencies #comprehensive-tls

comprehensive_tls

A harness for creating consistently-shaped servers will less boilerplate

1 unstable release

Uses new Rust 2024

new 0.1.0 May 16, 2025

#22 in #boilerplate


Used in 2 crates

MIT license

200KB
4K SLoC

Comprenehsive Resource for loading a TLS key and certificate.

Usage:

#[derive(comprehensive::ResourceDependencies)]
struct ServerDependencies {
    tls: std::sync::Arc<comprehensive_tls::TlsConfig>,
}

impl comprehensive::Resource for Server {
    type Args = comprehensive::NoArgs;
    type Dependencies = ServerDependencies;
    const NAME: &str = "Very secure!";

    fn new(d: ServerDependencies, _: comprehensive::NoArgs) -> Result<Self, Box<dyn std::error::Error>> {
        let _ = rustls::ServerConfig::builder()
            .with_no_client_auth()
            .with_cert_resolver(d.tls.cert_resolver()?);
        // ...more setup...
        Ok(Self)
    }
}

Dependencies

~15–24MB
~442K SLoC