5个版本
0.1.4 | 2020年12月28日 |
---|---|
0.1.3 | 2020年8月21日 |
0.1.2 | 2020年8月20日 |
0.1.1 | 2020年8月19日 |
0.1.0 | 2020年8月19日 |
#793 in 配置
20KB
416 行
loadenv
一个简单的、无依赖的Rustdotenv实现。
用法
此库公开了两个类似的功能。第一个是 loadenv::load()
,它会在当前目录中查找名为 .env
的文件并将其内容加载到环境变量中。第二个是 loadenv::load_buf()
,它接收一个 BufRead 并将其内容加载到环境变量中。此函数可以用来从自定义位置或从其他数据结构(如 &[u8]
)加载.env文件。
大多数情况下, load()
应该足以满足你的程序。
按照 dotenv项目页面上的这一部分,已经定义的环境变量 不会被替换。
文件格式
# Example .env file
# Comments begin with `#` and must be on their own line
# Pairs are in the form `KEY = value`
USERNAME = ben
PASSWORD = k4+5F_Sa9x%LA&Zy
# `=` is optional for empty values
DEBUG
# whitespace around `=` is optional
FOO=bar
BOP = baz
一个 .env
文件包含零个或多个键值对,形式为 KEY = value
。等于号前后(包括行首和行尾)的空白被忽略。
此外,以下规则适用于所有行
- 空行被忽略。
- 以
#
开头的行是注释并会被忽略。请注意,注释必须单独占一行。 KEY
只能包含0-9
、A-Z
和_
。value
可以是任何值。
更详细的示例可以在本项目的根目录下的 .env
文件中找到。
示例
加载示例.env文件并打印出新的环境变量。
fn main() {
loadenv::load().ok();
for (k, v) in std::env::vars() {
println!("{} = '{}'", k, v);
}
}
从字符串中加载.env文件。
fn main() {
let dotenv = "FOO=bar\nBOP = baz \n# Comment\n";
loadenv::load_buf(dotenv.as_bytes()).ok();
for (k, v) in std::env::vars() {
println!("{} = '{}'", k, v);
}
}
运行测试
测试必须在单线程模式下运行,使用 cargo test -- --test-threads=1
。否则,测试将不可靠,因为许多 std::env
方法不是线程安全的。更多信息请参阅 此页面。