pub struct ClientConfig {
    pub alpn_protocols: Vec<Vec<u8>>,
    pub session_storage: Arc<dyn StoresClientSessions>,
    pub max_fragment_size: Option<usize>,
    pub client_auth_cert_resolver: Arc<dyn ResolvesClientCert>,
    pub enable_tickets: bool,
    pub enable_sni: bool,
    pub key_log: Arc<dyn KeyLog>,
    pub enable_secret_extraction: bool,
    pub enable_early_data: bool,
    /* private fields */
}
Expand description

Common configuration for (typically) all connections made by a program.

Making one of these can be expensive, and should be once per process rather than once per connection.

These must be created via the ClientConfig::builder() function.

Defaults

Fields

alpn_protocols: Vec<Vec<u8>>

Which ALPN protocols we include in our client hello. If empty, no ALPN extension is sent.

session_storage: Arc<dyn StoresClientSessions>

How we store session data or tickets.

max_fragment_size: Option<usize>

The maximum size of TLS message we’ll emit. If None, we don’t limit TLS message lengths except to the 2**16 limit specified in the standard.

rustls enforces an arbitrary minimum of 32 bytes for this field. Out of range values are reported as errors from ClientConnection::new.

Setting this value to the TCP MSS may improve latency for stream-y workloads.

client_auth_cert_resolver: Arc<dyn ResolvesClientCert>

How to decide what client auth certificate/keys to use.

enable_tickets: bool

Whether to support RFC5077 tickets. You must provide a working session_storage member for this to have any meaningful effect.

The default is true.

enable_sni: bool

Whether to send the Server Name Indication (SNI) extension during the client handshake.

The default is true.

key_log: Arc<dyn KeyLog>

How to output key material for debugging. The default does nothing.

enable_secret_extraction: bool

Allows traffic secrets to be extracted after the handshake, e.g. for kTLS setup.

enable_early_data: bool

Whether to send data on the first flight (“early data”) in TLS 1.3 handshakes.

The default is false.

Implementations

Create a builder to build up the client configuration.

For more information, see the ConfigBuilder documentation.

Access configuration options whose use is dangerous and requires extra care.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.