megalodon 1.3.0

Fediverse API client library for Rust.
Documentation
use tokio_tungstenite::Connector;

#[cfg(feature = "rustls-tls")]
pub fn build_connector() -> Option<Connector> {
    use std::sync::Arc;

    let mut root_store = rustls::RootCertStore::empty();
    for cert in rustls_native_certs::load_native_certs().certs {
        let _ = root_store.add(cert);
    }
    let config = rustls::ClientConfig::builder_with_provider(Arc::new(
        rustls::crypto::ring::default_provider(),
    ))
    .with_safe_default_protocol_versions()
    .expect("Failed to set TLS protocol versions")
    .with_root_certificates(root_store)
    .with_no_client_auth();

    Some(Connector::Rustls(Arc::new(config)))
}

#[cfg(not(feature = "rustls-tls"))]
pub fn build_connector() -> Option<Connector> {
    None
}