1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年1月1日 |
---|
#56 in #dotenv
262 每月下载
4KB
rust-dotenv 
注意! 这是一个v0.*版本!请预期周围会有bug和问题。提交pull请求和问题被高度鼓励!
将配置存储在环境中是十二要素应用的一个原则。任何可能在部署环境之间发生变化的元素(如数据库的资源句柄或外部服务的凭证)都应该从代码中提取出来,存储为环境变量。
这个库旨在用于开发或测试环境,在这些环境中设置环境变量不切实际。如果可用,它将从当前目录或其父目录中的.env
文件中加载环境变量,并将其与操作系统提供的实际环境变量合并。
用法
最简单、最常用的用法是在应用程序启动时调用dotenv::dotenv
,这将从当前目录或其父目录中名为.env
的文件中加载环境变量;之后,您可以像使用std::os
提供的环境相关方法一样调用所需的方法。
如果您需要更细粒度地控制文件名或其位置,您可以使用crate提供的from_filename
和from_path
方法。
dotenv_codegen
提供了dotenv!
宏,其行为与env!
相同,但在编译时首先尝试加载一个名为.env
的文件。
示例
一个 .env
文件看起来像这样
# a comment, will be ignored
REDIS_ADDRESS=localhost:6379
MEANING_OF_LIFE=42
你可以选择性地在每个行前加上单词 export
,这将方便你在 shell 中导入整个文件。
使用 Dotenv 的示例项目可能如下所示
extern crate dotenv;
use dotenv::dotenv;
use std::env;
fn main() {
dotenv().ok();
for (key, value) in env::vars() {
println!("{}: {}", key, value);
}
}
使用 dotenv!
宏
将 dotenv_codegen
添加到你的依赖中,并在你的 crate 的顶部添加以下内容
#[macro_use]
extern crate dotenv_codegen;
然后,在你的 crate 中
fn main() {
println!("{}", dotenv!("MEANING_OF_LIFE"));
}
依赖
~5.5MB
~117K SLoC