1 unstable release

0.1.0 Apr 30, 2021

#5 in #acceptor

MIT/Apache

7KB

async-tls-acceptor

This crate provides a common interface for server-side tls acceptors, abstracting over various implementations.

The only implementation provided by this crate is (), which is a noop acceptor, and passes through the Input type.

Implementing this trait looks like:

use async_tls_acceptor::{async_trait, Acceptor, AsyncRead, AsyncWrite};

#[async_trait]
impl<Input> Acceptor<Input> for my_tls_impl::Acceptor
where
    Input: AsyncRead + AsyncWrite + Send + Sync + Unpin + 'static,
{
    type Output = my_tls_impl::TlsStream<Input>;
    type Error = my_tls_impl::Error;
    async fn accept(&self, input: Input) -> Result<Self::Output, Self::Error> {
        self.accept(input).await
    }
}

Safety

This crate uses #![deny(unsafe_code)].

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~250–710KB
~17K SLoC