#env-var #secret #configuration #automatic #variables

conf_from_env

Configurations and secrets defined in structs are automatically read from environment variables

1 unstable release

0.1.0 Dec 4, 2022

#861 in Configuration

AGPL-3.0-or-later

4KB

conf_from_env

This library automatically reads configurations from environment variables. The configuration is defined in one struct for configuration values and in one struct for secrets. The environment variables are expected to have the same name as the struct attributes in uppercase.

Example

LOG_LEVEL=info

REDIS_HOST=127.0.0.1
REDIS_USER=lala
REDIS_PASSWORD=lili
pub struct Config {
    pub log_level: String,

    pub redis_host: String,
    pub redis_user: String,
    
    timeout: u32
}

#[derive(SetStructFromEnv, Clone)]
pub struct Secrets {
    pub redis_password: String,
}

pub type CoSe = ConfigAndSecrets<Config, Secrets>;

fn main() {
    let cose = CoSe::from_env();
    println!("config and secrets: {:?}", cose);
}

Dependencies

~1.5MB
~35K SLoC