Struct rocket::config::Config[][src]

pub struct Config {
Show fields pub profile: Profile, pub address: IpAddr, pub port: u16, pub workers: usize, pub ident: Ident, pub limits: Limits, pub temp_dir: RelativePathBuf, pub keep_alive: u32, pub tls: Option<TlsConfig>, pub secret_key: SecretKey, pub shutdown: Shutdown, pub log_level: LogLevel, pub cli_colors: bool, // some fields omitted
}
Expand description

Rocket server configuration.

See the module level docs as well as the configuration guide for further details.

Defaults

All configuration values have a default, documented in the fields section below. Config::debug_default() returns the default values for the debug profile while Config::release_default() the default values for the release profile. The Config::default() method automatically selects the appropriate of the two based on the selected profile. With the exception of log_level, which is normal in debug and critical in release, and secret_key, which is regenerated from a random value if not set in “debug” mode only, all default values are identical in all profiles.

Provider Details

Config is a Figment Provider with the following characteristics:

  • Profile

    The profile is set to the value of the profile field.

  • Metadata

    This provider is named Rocket Config. It does not specify a Source and uses default interpolatation.

  • Data

    The data emitted by this provider are the keys and values corresponding to the fields and values of the structure. The dictionary is emitted to the “default” meta-profile.

Note that these behaviors differ from those of Config::figment().

Fields

profile: Profile

The selected profile. (default: debug debug / release release)

Note: This field is never serialized nor deserialized. When a Config is merged into a Figment as a Provider, this profile is selected on the Figment. When a Config is extracted, this field is set to the extracting Figment’s selected Profile.

address: IpAddr

IP address to serve on. (default: 127.0.0.1)

port: u16

Port to serve on. (default: 8000)

workers: usize

Number of threads to use for executing futures. (default: num_cores)

ident: Ident

How, if at all, to identify the server via the Server header. (default: "Rocket")

limits: Limits

Streaming read size limits. (default: Limits::default())

temp_dir: RelativePathBuf

Directory to store temporary files in. (default: std::env::temp_dir())

keep_alive: u32

Keep-alive timeout in seconds; disabled when 0. (default: 5)

tls: Option<TlsConfig>
This is supported on crate feature tls only.

The TLS configuration, if any. (default: None)

secret_key: SecretKey
This is supported on crate feature secrets only.

The secret key for signing and encrypting. (default: 0)

Note: This field always serializes as a 256-bit array of 0s to aid in preventing leakage of the secret key.

shutdown: Shutdown

Graceful shutdown configuration. (default: Shutdown::default())

log_level: LogLevel

Max level to log. (default: debug normal / release critical)

cli_colors: bool

Whether to use colors and emoji when logging. (default: true)

Implementations

Returns the default configuration for the debug profile, irrespective of the Rust compilation profile and ROCKET_PROFILE.

This may differ from the configuration used by default, Config::default(), which is selected based on the Rust compilation profile. See defaults and provider details for specifics.

Example

use rocket::Config;

let config = Config::debug_default();

Returns the default configuration for the release profile, irrespective of the Rust compilation profile and ROCKET_PROFILE.

This may differ from the configuration used by default, Config::default(), which is selected based on the Rust compilation profile. See defaults and provider details for specifics.

Example

use rocket::Config;

let config = Config::release_default();

Returns the default provider figment used by rocket::build().

The default figment reads from the following sources, in ascending priority order:

  1. Config::default() (see defaults)
  2. Rocket.toml or filename in ROCKET_CONFIG environment variable
  3. ROCKET_ prefixed environment variables

The profile selected is the value set in the ROCKET_PROFILE environment variable. If it is not set, it defaults to debug when compiled in debug mode and release when compiled in release mode.

Example

use rocket::Config;
use serde::Deserialize;

#[derive(Deserialize)]
struct MyConfig {
    app_key: String,
}

let my_config = Config::figment().extract::<MyConfig>();

Attempts to extract a Config from provider, returning the result.

Example

use rocket::Config;
use rocket::figment::providers::{Toml, Format, Env};

// Use Rocket's default `Figment`, but allow values from `MyApp.toml`
// and `MY_APP_` prefixed environment variables to supersede its values.
let figment = Config::figment()
    .merge(("some-thing", 123))
    .merge(Env::prefixed("CONFIG_"));

let config = Config::try_from(figment);

Extract a Config from provider, panicking if extraction fails.

Panics

If extraction fails, prints an error message indicating the failure and panics. For a version that doesn’t panic, use Config::try_from().

Example

use rocket::Config;
use rocket::figment::providers::{Toml, Format, Env};

// Use Rocket's default `Figment`, but allow values from `MyApp.toml`
// and `MY_APP_` prefixed environment variables to supersede its values.
let figment = Config::figment()
    .merge(Toml::file("MyApp.toml").nested())
    .merge(Env::prefixed("MY_APP_"));

let config = Config::from(figment);

Returns true if TLS is enabled.

TLS is enabled when the tls feature is enabled and TLS has been configured with at least one ciphersuite. Note that without changing defaults, all supported ciphersuites are enabled in the recommended configuration.

Example

let config = rocket::Config::default();
if config.tls_enabled() {
    println!("TLS is enabled!");
} else {
    println!("TLS is disabled.");
}

Returns true if mTLS is enabled.

mTLS is enabled when TLS is enabled (Config::tls_enabled()) and the mtls feature is enabled and mTLS has been configured with a CA certificate chain.

Example

let config = rocket::Config::default();
if config.mtls_enabled() {
    println!("mTLS is enabled!");
} else {
    println!("mTLS is disabled.");
}

Associated constants for default profiles.

The default debug profile: debug.

The default release profile: release.

The default profile: “debug” on debug, “release” on release.

Associated constants for stringy versions of configuration parameters.

The stringy parameter name for setting/extracting Config::address.

The stringy parameter name for setting/extracting Config::port.

The stringy parameter name for setting/extracting Config::workers.

The stringy parameter name for setting/extracting Config::keep_alive.

The stringy parameter name for setting/extracting Config::limits.

The stringy parameter name for setting/extracting Config::tls.

The stringy parameter name for setting/extracting Config::secret_key.

The stringy parameter name for setting/extracting Config::temp_dir.

The stringy parameter name for setting/extracting Config::log_level.

The stringy parameter name for setting/extracting Config::shutdown.

The stringy parameter name for setting/extracting Config::cli_colors.

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

Returns the default configuration based on the Rust compilation profile. This is Config::debug_default() in debug and Config::release_default() in release.

Example

use rocket::Config;

let config = Config::default();

Deserialize this value from the given Serde deserializer. Read more

The associated error to be returned if derivation fails.

Derives an instance of Self from the incoming request metadata. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Returns the Metadata for this provider, identifying itself and its configuration sources. Read more

Returns the configuration data.

Optionally returns a profile to set on the Figment this provider is merged into. The profile is only set if self is merged. Read more

Serialize this value into the given Serde serializer. 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

Converts self into T using Into<T>. Read more

Converts self into a target type. Read more

Causes self to use its Binary implementation when Debug-formatted.

Causes self to use its Display implementation when Debug-formatted. Read more

Causes self to use its LowerExp implementation when Debug-formatted. Read more

Causes self to use its LowerHex implementation when Debug-formatted. Read more

Causes self to use its Octal implementation when Debug-formatted.

Causes self to use its Pointer implementation when Debug-formatted. Read more

Causes self to use its UpperExp implementation when Debug-formatted. Read more

Causes self to use its UpperHex implementation when Debug-formatted. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Converts self into a collection.

Pipes by value. This is generally the method you want to use. Read more

Borrows self and passes that borrow into the pipe function. Read more

Mutably borrows self and passes that borrow into the pipe function. Read more

Borrows self, then passes self.borrow() into the pipe function. Read more

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more

Borrows self, then passes self.as_ref() into the pipe function.

Mutably borrows self, then passes self.as_mut() into the pipe function. Read more

Borrows self, then passes self.deref() into the pipe function.

Mutably borrows self, then passes self.deref_mut() into the pipe function. Read more

Pipes a value into a function that cannot ordinarily be called in suffix position. Read more

Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more

Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more

Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more

Pipes a trait mutable borrow into a function that cannot normally be called in suffix position. Read more

Pipes a dereference into a function that cannot normally be called in suffix position. Read more

Pipes a mutable dereference into a function that cannot normally be called in suffix position. Read more

Pipes a reference into a function that cannot ordinarily be called in suffix position. Read more

Pipes a mutable reference into a function that cannot ordinarily be called in suffix position. Read more

Should always be Self

Immutable access to a value. Read more

Mutable access to a value. Read more

Immutable access to the Borrow<B> of a value. Read more

Mutable access to the BorrowMut<B> of a value. Read more

Immutable access to the AsRef<R> view of a value. Read more

Mutable access to the AsMut<R> view of a value. Read more

Immutable access to the Deref::Target of a value. Read more

Mutable access to the Deref::Target of a value. Read more

Calls .tap() only in debug builds, and is erased in release builds.

Calls .tap_mut() only in debug builds, and is erased in release builds. Read more

Calls .tap_borrow() only in debug builds, and is erased in release builds. Read more

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds. Read more

Calls .tap_ref() only in debug builds, and is erased in release builds. Read more

Calls .tap_ref_mut() only in debug builds, and is erased in release builds. Read more

Calls .tap_deref() only in debug builds, and is erased in release builds. Read more

Calls .tap_deref_mut() only in debug builds, and is erased in release builds. Read more

Provides immutable access for inspection. Read more

Calls tap in debug builds, and does nothing in release builds.

Provides mutable access for modification. Read more

Calls tap_mut in debug builds, and does nothing in release builds.

Provides immutable access to the reference for inspection.

Calls tap_ref in debug builds, and does nothing in release builds.

Provides mutable access to the reference for modification.

Calls tap_ref_mut in debug builds, and does nothing in release builds.

Provides immutable access to the borrow for inspection. Read more

Calls tap_borrow in debug builds, and does nothing in release builds.

Provides mutable access to the borrow for modification.

Calls tap_borrow_mut in debug builds, and does nothing in release builds. Read more

Immutably dereferences self for inspection.

Calls tap_deref in debug builds, and does nothing in release builds.

Mutably dereferences self for modification.

Calls tap_deref_mut in debug builds, and does nothing in release builds. Read more

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

Attempts to convert self into T using TryInto<T>. Read more

Attempts to convert self into a target type. 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.