#env-var #env-file #environment #load #process #key

envro

一个将.env文件中的环境变量加载到进程环境变量的crate。

6个版本

0.3.3 2024年6月12日
0.3.2 2024年6月12日
0.3.1 2024年5月30日
0.2.0 2024年2月28日
0.1.0 2024年2月27日

#17 in #env-file

41 每月下载量

MIT 许可证

13KB
237 代码行

Envro

一个将.env文件中的环境变量加载到进程环境变量的crate。

入门指南

cargo add envro
use std::env;

use envro::*;

fn main() {
    let env_file = env::current_dir().unwrap().join(".env-sample");

    // load env vars and return them
    let env_vars = load_dotenv(&env_file).unwrap();
    println!("---");
    println!(">> vars from .env file");
    println!("{:#?}", &env_vars);

    // load env vars into env::vars
    load_dotenv_in_env_vars(&env_file).unwrap();
    println!("---");
    println!(">> from env::vars()");
    for (key, value) in env::vars() {
        if !env_vars.contains_key(&key) {
            continue;
        }
        println!("{key}: {value}");
    }
}

测试

cargo test

待办事项

  • 检查.env文件是否只包含变量一次
  • 支持多行字符串值
  • 值验证
  • github action发布
  • 强制环境变量转换为类型
  • 测试,代码覆盖率

许可证

MIT许可证

版权所有 (c) 2024 Simone Sanfratello

以下许可授予任何人免费获得此软件及其相关文档副本(“软件”)的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和侵权不保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权或其他方式,源于、因或与软件或其使用或其他方式有关。

依赖关系

~260–720KB
~17K SLoC