Struct wtransport::ServerConfig
source · pub struct ServerConfig { /* private fields */ }
Expand description
Server configuration.
You can create an instance of ServerConfig
using its builder pattern by calling
the builder()
method.
Once you have an instance, you can further customize it by chaining method calls
to set various configuration options.
§Configuration Builder States
The configuration process follows a state-based builder pattern, where the server configuration progresses through 3 states.
§1. WantsBindAddress
The caller must supply a binding address for the server. This is where to specify the listening port of the server. The following options are mutually exclusive:
with_bind_default
: the simplest configuration where only the port will be specified.with_bind_config
: configures to bind an address determined by a configuration preset.with_bind_address
: configures to bind a custom specified socket address.
Only one of these options can be selected during the client configuration process.
§Examples:
use wtransport::ServerConfig;
// Configuration for accepting incoming connection on port 443
ServerConfig::builder().with_bind_default(443);
§2. WantsIdentity
The caller must supply a TLS identity for the server.
with_identity
: configures a TLSIdentity
for the server.with_custom_tls
: sets the TLS server configuration manually.
§Examples:
use wtransport::Identity;
use wtransport::ServerConfig;
ServerConfig::builder()
.with_bind_default(443)
.with_identity(&Identity::load_pemfiles("cert.pem", "key.pem").await?);
§3. WantsTransportConfigServer
The caller can supply additional transport configurations.
Multiple options can be given at this stage. Once the configuration is completed, it is possible
to finalize with the method build()
.
All these options can be omitted in the configuration; default values will be used.
§Examples:
use wtransport::ServerConfig;
use wtransport::Identity;
use std::time::Duration;
let server_config = ServerConfig::builder()
.with_bind_default(443)
.with_identity(&Identity::load_pemfiles("cert.pem", "key.pem").await?)
.keep_alive_interval(Some(Duration::from_secs(3)))
.build();
Implementations§
source§impl ServerConfig
impl ServerConfig
sourcepub fn builder() -> ServerConfigBuilder<WantsBindAddress>
pub fn builder() -> ServerConfigBuilder<WantsBindAddress>
Creates a builder to build up the server configuration.
For more information, see the ServerConfigBuilder
documentation.
sourcepub fn quic_config(&self) -> &ServerConfig
Available on crate feature quinn
only.
pub fn quic_config(&self) -> &ServerConfig
quinn
only.Returns a reference to the inner QUIC configuration.
sourcepub fn quic_config_mut(&mut self) -> &mut ServerConfig
Available on crate feature quinn
only.
pub fn quic_config_mut(&mut self) -> &mut ServerConfig
quinn
only.Returns a mutable reference to the inner QUIC configuration.