#[non_exhaustive]pub struct RustlsProvider { /* private fields */ }Available on (crate features
native-tls or rustls) and (crate features async-std or tokio or smol) and crate feature rustls only.Expand description
A TlsProvider that uses rustls.
It supports wrapping any reasonable stream type that implements AsyncRead + AsyncWrite.
§Cryptographic providers
The application is responsible for calling CryptoProvider::install_default()
before constructing TlsProvider. If they do not, rustls will fail,
and arti will not run.
We currently recommend the aws-lc-rs provider because, of the two builtin providers that ship with rustls, it appears to have better performance, and it supports hybrid post-quantum handshakes. It used to have a problematic license, but this has been fixed since March 2026.
See the rustls documentation for a list of other rustls cryptography providers.
Trait Implementations§
Source§impl Clone for RustlsProvider
impl Clone for RustlsProvider
Source§fn clone(&self) -> RustlsProvider
fn clone(&self) -> RustlsProvider
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for RustlsProvider
impl Default for RustlsProvider
Source§impl<S> TlsProvider<S> for RustlsProvider
impl<S> TlsProvider<S> for RustlsProvider
Source§type Acceptor = RustlsAcceptor<S>
type Acceptor = RustlsAcceptor<S>
The Acceptor object that this provider can return, for handling incoming connections.
Source§type TlsServerStream = RustlsServerStream<S>
type TlsServerStream = RustlsServerStream<S>
The type of stream returned by that Acceptor.
Source§fn tls_connector(&self) -> Self::Connector
fn tls_connector(&self) -> Self::Connector
Return a TLS connector for use with this runtime.
Source§fn tls_acceptor(
&self,
settings: TlsAcceptorSettings,
) -> IoResult<Self::Acceptor>
fn tls_acceptor( &self, settings: TlsAcceptorSettings, ) -> IoResult<Self::Acceptor>
Return a TLS acceptor for use with this runtime. Read more
Source§fn supports_keying_material_export(&self) -> bool
fn supports_keying_material_export(&self) -> bool
Return true iff the keying material exporters (RFC 5705) is supported.
Auto Trait Implementations§
impl Freeze for RustlsProvider
impl !RefUnwindSafe for RustlsProvider
impl Send for RustlsProvider
impl Sync for RustlsProvider
impl Unpin for RustlsProvider
impl UnsafeUnpin for RustlsProvider
impl !UnwindSafe for RustlsProvider
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more