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

pub struct Config {
Show fields pub profile: Profile, pub address: IpAddr, pub port: u16, pub workers: usize, pub keep_alive: u32, pub limits: Limits, pub tls: Option<TlsConfig>, pub ident: Ident, pub secret_key: SecretKey, pub temp_dir: PathBuf, pub log_level: LogLevel, pub shutdown: Shutdown, 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 part of a Config Provider, it is emitted as the profile to select on the merged-into 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)

keep_alive: u32

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

limits: Limits

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

tls: Option<TlsConfig>

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

ident: Ident

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

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.

temp_dir: PathBuf

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

log_level: LogLevel

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

shutdown: Shutdown

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

cli_colors: bool

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

Implementations

impl Config[src]

pub fn debug_default() -> Config[src]

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();

pub fn release_default() -> Config[src]

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();

pub fn figment() -> Figment[src]

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>();

pub fn try_from<T: Provider>(provider: T) -> Result<Self>[src]

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);

pub fn from<T: Provider>(provider: T) -> Self[src]

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);

pub fn tls_enabled(&self) -> bool[src]

Returns true if TLS is enabled.

TLS is enabled when the tls feature is enabled and TLS has been configured.

Example

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

impl Config[src]

pub const DEBUG_PROFILE: Profile[src]

The default debug profile: debug.

pub const RELEASE_PROFILE: Profile[src]

The default release profile: release.

pub const DEFAULT_PROFILE: Profile[src]

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

impl Config[src]

pub const ADDRESS: &'static str[src]

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

pub const PORT: &'static str[src]

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

pub const WORKERS: &'static str[src]

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

pub const KEEP_ALIVE: &'static str[src]

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

pub const LIMITS: &'static str[src]

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

pub const TLS: &'static str[src]

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

pub const SECRET_KEY: &'static str[src]

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

pub const TEMP_DIR: &'static str[src]

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

pub const LOG_LEVEL: &'static str[src]

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

pub const SHUTDOWN: &'static str[src]

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

Trait Implementations

impl Clone for Config[src]

fn clone(&self) -> Config[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Config[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for Config[src]

fn default() -> Config[src]

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();

impl<'de> Deserialize<'de> for Config[src]

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
    __D: Deserializer<'de>, 
[src]

Deserialize this value from the given Serde deserializer. Read more

impl<'r> FromRequest<'r> for &'r Config[src]

type Error = Infallible

The associated error to be returned if derivation fails.

fn from_request<'life0, 'async_trait>(
    req: &'r Request<'life0>
) -> Pin<Box<dyn Future<Output = Outcome<Self, Self::Error>> + Send + 'async_trait>> where
    'r: 'async_trait,
    'life0: 'async_trait,
    Self: 'async_trait, 
[src]

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

impl PartialEq<Config> for Config[src]

fn eq(&self, other: &Config) -> bool[src]

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

fn ne(&self, other: &Config) -> bool[src]

This method tests for !=.

impl Provider for Config[src]

fn metadata(&self) -> Metadata[src]

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

fn data(&self) -> Result<Map<Profile, Dict>>[src]

Returns the configuration data.

fn profile(&self) -> Option<Profile>[src]

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

impl Serialize for Config[src]

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
    __S: Serializer
[src]

Serialize this value into the given Serde serializer. Read more

impl StructuralPartialEq for Config[src]

Auto Trait Implementations

impl RefUnwindSafe for Config

impl Send for Config

impl Sync for Config

impl Unpin for Config

impl UnwindSafe for Config

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

fn instrument(self, span: Span) -> Instrumented<Self>[src]

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

fn in_current_span(self) -> Instrumented<Self>[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> IntoCollection<T> for T

pub fn into_collection<A>(self) -> SmallVec<A> where
    A: Array<Item = T>, 

Converts self into a collection.

pub fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
    F: FnMut(T) -> U,
    A: Array<Item = U>, 

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

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

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]