5 个版本

0.16.1 2023年3月23日
0.16.0 2023年3月23日
0.15.2 2023年3月20日
0.15.1 2023年3月18日
0.15.0 2023年3月18日

#796 in 配置

Download history 19/week @ 2024-03-08 5/week @ 2024-03-15 15/week @ 2024-03-29 20/week @ 2024-04-05 37/week @ 2024-04-12 21/week @ 2024-04-19 32/week @ 2024-04-26 32/week @ 2024-05-03 16/week @ 2024-05-10 16/week @ 2024-05-17 17/week @ 2024-05-24 35/week @ 2024-05-31 34/week @ 2024-06-07 5/week @ 2024-06-14

每月 77 次下载

MIT 协议

39KB
929

dotenv-rs

dotenv 分叉而来

使用 Dotenv 的示例项目如下

extern crate dotenv_rs;

use dotenv_rs::dotenv;
use std::env;

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

    for (key, value) in env::vars() {
        println!("{}: {}", key, value);
    }
    dotenv_with_prefix(&String::from("Test")).ok();

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

变量替换

可以使用 .env 文件中的 $VARIABLE 语法重用变量。语法和规则类似于 bash,以下是一个示例


VAR=one
VAR_2=two

# Non-existing values are replaced with an empty string
RESULT=$NOPE #value: '' (empty string)

# All the letters after $ symbol are treated as the variable name to replace
RESULT=$VAR #value: 'one'

# Double quotes do not affect the substitution
RESULT="$VAR" #value: 'one'

# Different syntax, same result 
RESULT=${VAR} #value: 'one'

# Curly braces are useful in cases when we need to use a variable with non-alphanumeric name
RESULT=$VAR_2 #value: 'one_2' since $ with no curly braces stops after first non-alphanumeric symbol 
RESULT=${VAR_2} #value: 'two'

# The replacement can be escaped with either single quotes or a backslash:
RESULT='$VAR' #value: '$VAR'
RESULT=\$VAR #value: '$VAR'

# Environment variables are used in the substutution and always override the local variables
RESULT=$PATH #value: the contents of the $PATH environment variable
PATH="My local variable value"
RESULT=$PATH #value: the contents of the $PATH environment variable, even though the local variable is defined

Dotenv 将解析文件,按照注释中的描述替换变量。

使用 dotenv!

dotenv_codegen 添加到您的依赖项中,并在您的 crate 的顶部添加以下内容

#[macro_use]
extern crate dotenv_codegen;

然后,在您的 crate 中

fn main() {
  println!("{}", dotenv!("MEANING_OF_LIFE"));
}

依赖项

~120KB