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

conf_from_env

在结构体中定义的配置和秘密将自动从环境变量中读取

1 个不稳定版本

0.1.0 2022年12月4日

#903 in 配置

AGPL-3.0-or-later

4KB

conf_from_env

此库自动从环境变量中读取配置。配置在配置值的一个结构体中定义,在秘密的一个结构体中定义。预期环境变量具有与结构体属性相同的名称,全部大写。

示例

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);
}

依赖项

~1.5MB
~36K SLoC