Struct rocket::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 aSource
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
secrets
only.The secret key for signing and encrypting. (default: 0
)
Note: This field always serializes as a 256-bit array of 0
s 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
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:
Config::default()
(see defaults)Rocket.toml
or filename inROCKET_CONFIG
environment variableROCKET_
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.
Example
let config = rocket::Config::default(); if config.tls_enabled() { println!("TLS is enabled!"); } else { println!("TLS is disabled."); }
The default debug profile: debug
.
The default release profile: release
.
The default profile: “debug” on debug
, “release” on release
.
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
.
Trait Implementations
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();
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[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
type Error = Infallible
type Error = Infallible
The associated error to be returned if derivation fails.
Auto Trait Implementations
impl RefUnwindSafe for Config
impl UnwindSafe for Config
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
Converts self
into a collection.
type Output = T
type Output = T
Should always be Self
pub fn vzip(self) -> V