pub struct Config {Show 15 fields
pub profile: Profile,
pub address: IpAddr,
pub port: u16,
pub workers: usize,
pub max_blocking: usize,
pub ident: Ident,
pub ip_header: Option<Uncased<'static>>,
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
profilefield. -
Metadata
This provider is named
Rocket Config. It does not specify aSourceand uses default interpolation. -
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: ProfileThe 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: IpAddrIP address to serve on. (default: 127.0.0.1)
port: u16Port to serve on. (default: 8000)
workers: usizeNumber of threads to use for executing futures. (default: num_cores)
Note: Rocket only reads this value from sources in the default provider.
max_blocking: usizeLimit on threads to start for blocking tasks. (default: 512)
ident: IdentHow, if at all, to identify the server via the Server header.
(default: "Rocket")
ip_header: Option<Uncased<'static>>The name of a header, whose value is typically set by an intermediary
server or proxy, which contains the real IP address of the connecting
client. Used internally and by Request::client_ip() and
Request::real_ip().
To disable using any header for this purpose, set this value to false.
Deserialization semantics are identical to those of Ident except
that the value must syntactically be a valid HTTP header name.
(default: "X-Real-IP")
limits: LimitsStreaming read size limits. (default: Limits::default())
temp_dir: RelativePathBufDirectory to store temporary files in. (default:
std::env::temp_dir())
keep_alive: u32Keep-alive timeout in seconds; disabled when 0. (default: 5)
tls: Option<TlsConfig>tls only.The TLS configuration, if any. (default: None)
secret_key: SecretKeysecrets 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: ShutdownGraceful shutdown configuration. (default: Shutdown::default())
log_level: LogLevelMax level to log. (default: debug normal / release critical)
cli_colors: boolWhether to use colors and emoji when logging. (default: true)
Implementations§
Source§impl 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.tomlor filename inROCKET_CONFIGenvironment 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 error 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.");
}Source§impl Config
Associated constants for default profiles.
impl Config
Associated constants for default profiles.
Sourcepub const DEBUG_PROFILE: Profile
pub const DEBUG_PROFILE: Profile
The default debug profile: debug.
Sourcepub const RELEASE_PROFILE: Profile
pub const RELEASE_PROFILE: Profile
The default release profile: release.
Sourcepub const DEFAULT_PROFILE: Profile = Self::DEBUG_PROFILE
Available on debug-assertions enabled only.
pub const DEFAULT_PROFILE: Profile = Self::DEBUG_PROFILE
The default profile: “debug” on debug, “release” on release.
Source§impl Config
Associated constants for stringy versions of configuration parameters.
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 MAX_BLOCKING: &'static str = "max_blocking"
pub const MAX_BLOCKING: &'static str = "max_blocking"
The stringy parameter name for setting/extracting Config::max_blocking.
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 IDENT: &'static str = "ident"
pub const IDENT: &'static str = "ident"
The stringy parameter name for setting/extracting Config::ident.
Sourcepub const IP_HEADER: &'static str = "ip_header"
pub const IP_HEADER: &'static str = "ip_header"
The stringy parameter name for setting/extracting Config::ip_header.
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.
Sourcepub const PARAMETERS: &'static [&'static str]
pub const PARAMETERS: &'static [&'static str]
An array of all of the stringy parameter names.
Trait Implementations§
Source§impl Default for Config
impl Default for Config
Source§fn 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();Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
Source§fn 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>,
Source§impl<'r> FromRequest<'r> for &'r Config
impl<'r> FromRequest<'r> for &'r Config
Source§type Error = Infallible
type Error = Infallible
Source§impl Provider for Config
impl Provider for Config
impl StructuralPartialEq for Config
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations§
Source§impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for Twhere
T: 'a,
Source§impl<'a, T> AsTaggedImplicit<'a> for Twhere
T: 'a,
impl<'a, T> AsTaggedImplicit<'a> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);