pub struct Config {Show 13 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,
/* private fields */
}
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 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
)
Note: Rocket only reads this value from sources in the default provider.
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>
tls
only.The TLS configuration, if any. (default: None
)
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.
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
sourceimpl Config
impl Config
sourcepub fn debug_default() -> Config
pub fn debug_default() -> Config
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();
sourcepub fn release_default() -> Config
pub fn release_default() -> Config
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();
sourcepub fn figment() -> Figment
pub fn figment() -> Figment
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>();
sourcepub fn try_from<T: Provider>(provider: T) -> Result<Self>
pub fn try_from<T: Provider>(provider: T) -> Result<Self>
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);
sourcepub fn from<T: Provider>(provider: T) -> Self
pub fn from<T: Provider>(provider: T) -> Self
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);
sourcepub fn tls_enabled(&self) -> bool
pub fn tls_enabled(&self) -> bool
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.");
}
sourcepub fn mtls_enabled(&self) -> bool
pub fn mtls_enabled(&self) -> bool
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.");
}
sourceimpl Config
impl Config
Associated constants for default profiles.
sourcepub const DEBUG_PROFILE: Profile = Profile::const_new("debug")
pub const DEBUG_PROFILE: Profile = Profile::const_new("debug")
The default debug profile: debug
.
sourcepub const RELEASE_PROFILE: Profile = Profile::const_new("release")
pub const RELEASE_PROFILE: Profile = Profile::const_new("release")
The default release profile: release
.
sourcepub const DEFAULT_PROFILE: Profile = Self::DEBUG_PROFILE
pub const DEFAULT_PROFILE: Profile = Self::DEBUG_PROFILE
The default profile: “debug” on debug
, “release” on release
.
sourceimpl Config
impl Config
Associated constants for stringy versions of configuration parameters.
sourcepub const ADDRESS: &'static str = "address"
pub const ADDRESS: &'static str = "address"
The stringy parameter name for setting/extracting Config::address
.
sourcepub const PORT: &'static str = "port"
pub const PORT: &'static str = "port"
The stringy parameter name for setting/extracting Config::port
.
sourcepub const WORKERS: &'static str = "workers"
pub const WORKERS: &'static str = "workers"
The stringy parameter name for setting/extracting Config::workers
.
sourcepub const KEEP_ALIVE: &'static str = "keep_alive"
pub const KEEP_ALIVE: &'static str = "keep_alive"
The stringy parameter name for setting/extracting Config::keep_alive
.
sourcepub const LIMITS: &'static str = "limits"
pub const LIMITS: &'static str = "limits"
The stringy parameter name for setting/extracting Config::limits
.
sourcepub const TLS: &'static str = "tls"
pub const TLS: &'static str = "tls"
The stringy parameter name for setting/extracting Config::tls
.
sourcepub const SECRET_KEY: &'static str = "secret_key"
pub const SECRET_KEY: &'static str = "secret_key"
The stringy parameter name for setting/extracting Config::secret_key
.
sourcepub const TEMP_DIR: &'static str = "temp_dir"
pub const TEMP_DIR: &'static str = "temp_dir"
The stringy parameter name for setting/extracting Config::temp_dir
.
sourcepub const LOG_LEVEL: &'static str = "log_level"
pub const LOG_LEVEL: &'static str = "log_level"
The stringy parameter name for setting/extracting Config::log_level
.
sourcepub const SHUTDOWN: &'static str = "shutdown"
pub const SHUTDOWN: &'static str = "shutdown"
The stringy parameter name for setting/extracting Config::shutdown
.
sourcepub const CLI_COLORS: &'static str = "cli_colors"
pub const CLI_COLORS: &'static str = "cli_colors"
The stringy parameter name for setting/extracting Config::cli_colors
.
Trait Implementations
sourceimpl Default for Config
impl Default for Config
sourcefn default() -> Config
fn default() -> Config
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();
sourceimpl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<'r> FromRequest<'r> for &'r Config
impl<'r> FromRequest<'r> for &'r Config
type Error = Infallible
type Error = Infallible
The associated error to be returned if derivation fails.
impl StructuralPartialEq for Config
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<'a, T> AsTaggedExplicit<'a> for T where
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for T where
T: 'a,
fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self>
impl<'a, T> AsTaggedImplicit<'a> for T where
T: 'a,
impl<'a, T> AsTaggedImplicit<'a> for T where
T: 'a,
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
sourcefn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>,
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more