#[non_exhaustive]pub struct RustlsProvider {
config: Arc<ClientConfig>,
}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.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.config: Arc<ClientConfig>Inner ClientConfig logic used to create connectors.
Implementations§
Source§impl RustlsProvider
impl RustlsProvider
Sourcepub(crate) fn new() -> Self
pub(crate) fn new() -> Self
Construct a new RustlsProvider.
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 Connector = RustlsConnector<S>
type Connector = RustlsConnector<S>
The Connector object that this provider can return.
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