Figment provider for optionally file-based env config values.
use serde::Deserialize;
use figment::{Figment, providers::Env};
use figment_file_env_provider::FileEnv;
#[derive(Deserialize)]
struct Config {
frobnicate: String,
foo: u64,
}
let config: Config = Figment::new()
.merge(FileEnv::from_env(Env::prefixed("APP_")))
.extract()?;
This crate contains the FileEnv
provider for Figment
, to allow loading
configuration values from either environment variables or files. This is especially useful
for secret management in combination with containers.
For instance, to pass an API key to the configuration, you could use either the environment
variable API_KEY=abc123deadbeef
, or you could write that API key to a file
/secrets/api_key
and pass the env variable API_KEY_FILE=/secrets/api_key
.
See the documentation for a detailed usage guide and more information.
Add the following to your Cargo.toml
:
[dependencies]
figment = { version = "0.10", features = ["env"] }
figment_file_env_provider = { version = "0.2" }
Figment_file_env_provider is licensed under either of the MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT).