Expand description
§rustls-config-stream
rustls::ServerConfig and rustls::ClientConfig providers backed async streams.
This module exposes a ServerConfigProvider and ClientConfigProvider.
Both function identically, holding the current config in an
ArcSwap, providing a get_config() method to load the
current config as a standard Arc, and storing a new config
when it arrives from a user-supplied stream via a ServerConfigStreamBuilder
or ClientConfigStreamBuilder.
The background task performs exponential backoff (10ms -> 10s, doubling) when the stream fails, and attempts to re-create the stream via the builder.
§Usage
- Implement
ServerConfigStreamBuilderto produce a stream of freshServerConfiginstances (e.g. reading from disk, a secret store, or watching a certificate manager). - Start the provider with
ServerConfigProvider::start. - Use
ServerConfigProvider::get_configwherever you need the current config (e.g. inside an acceptor loop). - Optionally monitor liveness via
ServerConfigProvider::stream_healthy. ClientConfigProviderworks identically, only forrustls::ClientConfiginstead ofrustls::ServerConfig.
§Tracing
If the tracing feature is enabled, the provider will emit diagnostics
(debug/info/error) about updates and reconnection attempts.
Structs§
- Client
Config Provider - Holds the current
ClientConfigand refreshes it from an async stream. - Server
Config Provider - Holds the current
ServerConfigand refreshes it from an async stream.
Enums§
- Client
Config Stream Error - Errors that can occur while building or consuming a client-config stream.
- Server
Config Stream Error - Errors that can occur while building or consuming a server-config stream.
Traits§
- Client
Config Stream Builder - A factory for producing a stream of
rustls::ClientConfig. - Server
Config Stream Builder - A factory for producing a stream of
rustls::ServerConfig.