#env-var #variables #parse #value #dotenv #set #struct

envir

从环境变量中反序列化和序列化结构体

10 个不稳定版本 (3 个破坏性更新)

0.4.2 2024年7月26日
0.4.1 2024年7月24日
0.3.2 2024年6月22日
0.2.2 2023年4月17日
0.1.0 2022年7月22日

#471编码

Download history 58/week @ 2024-04-24 1/week @ 2024-05-15 3/week @ 2024-05-22 1/week @ 2024-05-29 4/week @ 2024-06-05 8/week @ 2024-06-12 544/week @ 2024-06-19 38/week @ 2024-06-26 32/week @ 2024-07-03 79/week @ 2024-07-17 488/week @ 2024-07-24 41/week @ 2024-07-31 2/week @ 2024-08-07

每月610 次下载
用于 2 crate

MIT 许可证

17KB
383

envir

Github actions Gitlab CI

处理您环境的工具箱。

基本功能

在不使用功能的情况下,此crate提供简单的函数来检索环境变量的值

  • get 以字符串形式检索;
  • parse 直接将值解析为期望的类型。

这些函数的 try_ 版本在 get 时如果变量不存在,则返回 None,在 parse 时返回 Error::Missing 错误。

此外,此crate还提供了一个 set 函数,类似于 std::env::set_var,但适用于所有实现了 ToString 的类型。

最后,一个 collect 函数,可以轻松检索所有环境变量并打印。

dotenv

dotenv 特性添加了一个同名函数来加载 .env 文件。

logger

logger 特性添加了通过环境变量配置的日志记录器。

serde

serde 特性添加了将结构体从环境变量反序列化和序列化的宏。

use envir::Deserialize;

#[derive(envir::Deserialize)]
struct Config {
}

fn main() -> envir::Result {
    let config: Config = envir::from_env()?;
    // or
    let config = Config::from_env()?;

    Ok(())
}

并且将环境变量序列化到环境变量中

use envir::Serialize;

#[derive(envir::Serialize, Default)]
struct Config {
}

let config = Config::default();
config.export();

extrapolation 特性允许在默认宏属性中替换环境变量

#[derive(envir::Deserialize)]
struct Config {
    #[envir(default = "/home/${USER}")]
    home: String,
}

有关更多信息,请参阅envir_derive crate 文档

依赖关系

~0–1.3MB
~20K SLoC