0.15.1 2022年2月28日

#57 in #dotenv

MIT 协议

3KB

dotenvy

crates.io CI Released API docs codecov

dotenv crate的优良分支。

该库从.env文件中加载环境变量。这在开发环境中很方便。

组件

  1. dotenvy crate -dotenv crate的优良分支。
  2. dotenvy_codegen crate -编译时dotenv检查宏。
  3. dotenvy_codgen_impl crate -dotenvy_codegen的内部实现。
  4. dotenvy CLI工具,用于使用来自.env文件的环境变量运行命令(目前仅限Unix)

用法

运行时加载

use dotenvy::dotenv;
use std::env;

fn main() {
    dotenv().ok();

    for (key, value) in env::vars() {
        println!("{key}: {value}");
    }
}

编译时加载

可以使用由dotenvy_codegen crate提供的dotenv!宏。

警告:存在与rust-analyzer (rust-analyzer #9606)相关的与dotenv!宏相关的问题

为什么会有这个分支存在呢?

原始dotenv crate自2020年6月26日以来没有更新。尝试联系作者和维护者均未成功(dotenv-rs/dotenv #74)。

这个分支旨在成为Rust中dotenv实现的开发家园。

与原始版本相比有哪些不同?

此仓库修复了

  • 家目录工作正常(不再使用已弃用的std::env::home_dir
  • dotenv!提供更多有用的错误信息(dotenv-rs/dotenv #57)

要查看完整的变更列表,请阅读变更日志

你是在篡改dotenv的传统吗?

传说失落的维护者将回归,将dotenvy的更改合并到dotenv中,以如此巨大的力量,以至于所有Cargo.toml都将失去一个字符。只有在那时,Rust的dotenv生态系统才能真正和谐统一。

在此之前,这个仓库将忠诚地继续传递dotenv火炬。它正在积极维护。欢迎贡献和PR!

依赖项

~1.5MB
~36K SLoC