#env-var #env-file #env #configuration #configuration-management #settings

env-map

EnvConfig:一个支持 .env 文件和全局访问的 Rust 包,用于轻松地将环境变量映射到结构体

1 个不稳定版本

0.1.0 2024年1月3日

#790配置

MPL-2.0 许可协议

9KB
63

env-map

env-map 是一个旨在简化将环境变量读取到结构化格式过程的 Rust 包。通过推导 EnvMap,您可以轻松地将环境变量映射到 Rust 结构体,支持从 .env 文件和系统环境变量中读取变量。

功能

  • 轻松将环境变量映射到 Rust 结构体。
  • 支持从 .env 文件或系统环境变量中读取变量。
  • 简化 Rust 应用程序的配置管理。

入门指南

要在项目中使用 env-map,请将其添加到您的 Cargo.toml

[dependencies]
env-map = "0.1.0"

用法

定义您的配置结构体并推导 EnvMap。这将自动将环境变量映射到结构体字段。

示例

#[derive(EnvMap)]
struct Config {
    api_key: String,
    path_to_save: String,
}

fn main() {
    // This will read the API_KEY and PATH_TO_SAVE variables from the environment
    let config = Config::get_config().get_or_init(Config::default);

    // Use your config as needed
    println!("API Key: {}", config.api_key);
    println!("Path to Save: {}", config.path_to_save);
}

环境变量

env-map 将环境变量映射到您的 Config 结构体中定义的相应字段。

在提供的示例中,结构体字段为 api_keypath_to_save,因此 env-map 将在环境中搜索 API_KEYPATH_TO_SAVE

给定结构体的环境变量示例

  • API_KEY:对应于 Config 中的 api_key
  • PATH_TO_SAVE:对应于 Config 中的 path_to_save

这些变量可以设置在应用程序同一目录下的 .env 文件中,或者作为系统环境变量。环境变量的名称自动从结构体字段名称推导,转换为大写。

贡献

欢迎为 env-map 贡献!请随时提交拉取请求、报告错误或建议功能。

许可协议

本包受 Mozilla 公共许可证 2.0 (MPL 2.0) 许可。

MPL 2.0 许可协议的概述

  • 本软件包的各个部分均适用MPL 2.0许可证。
  • 对本软件包中的文件进行的任何修改都必须以相同的MPL 2.0许可证提供。
  • 在其他项目中使用本软件包的代码(无论是全部还是部分),不需要整个项目都采用MPL 2.0许可证,只需使用来自本软件包的部分。

有关更多详细信息,请参阅本仓库中的LICENSE文件。MPL 2.0的全文本也可以在Mozilla官方网站找到。

通过使用、贡献或分发此软件包,您同意MPL 2.0许可证的条款和条件。

依赖项

~0.5–1MB
~25K SLoC