#json #env #async #env-var #env-parser

north-config

North 配置是一个多源配置库,作为 North 微服务框架的一部分进行设计

6 个版本

0.1.10 2024 年 1 月 13 日
0.1.9 2024 年 1 月 3 日
0.0.31 2023 年 7 月 25 日
0.0.3 2023 年 4 月 18 日
0.0.1 2022 年 8 月 25 日

#121 in 配置

每月 40 次下载

MIT/Apache

59KB
1K SLoC

North Config

North 配置是一个多源配置库,作为 North 微服务框架的一部分进行设计。它支持多个源,这些源合并成一个配置作为最终源,采用先入先出的指令合并模式,意味着最后一个配置源将覆盖其他配置。

目前,North 配置仅支持本地数据源,计划支持远程数据源。支持的数据源有 jsonyamlrontoml环境变量

所有源类型都支持嵌套或嵌套对象

支持 async-stdtokio,默认为 std

入门

use north_config::{ConfigSource, EnvSourceOptions, NorthConfigOptions};

#[derive(Clone, serde::Deserialize, Debug)]
struct DemoConfig {
    pub host: Option<String>,
}

///#[tokio::main]
fn main() {
    let config_options = NorthConfigOptions {
        sources: vec![
            // ConfigSource::File("examples/configs/bootstrap.{{env}}.yaml".to_string()),
            ConfigSource::Env(EnvSourceOptions::default()),
        ],
    };
    let config = north_config::new_config::<DemoConfig>(config_options).await;
    let config = config.get_value();

    Ok(())
}

依赖

~6–22MB
~277K SLoC