2个不稳定版本

0.1.0 2022年11月24日
0.0.1 2022年4月28日

#503配置

Download history 896/week @ 2024-03-14 814/week @ 2024-03-21 720/week @ 2024-03-28 559/week @ 2024-04-04 1018/week @ 2024-04-11 864/week @ 2024-04-18 446/week @ 2024-04-25 669/week @ 2024-05-02 647/week @ 2024-05-09 876/week @ 2024-05-16 713/week @ 2024-05-23 947/week @ 2024-05-30 1109/week @ 2024-06-06 860/week @ 2024-06-13 772/week @ 2024-06-20 457/week @ 2024-06-27

3,377 每月下载量
2 crates 中使用

MIT 许可证

13KB
279

dotenvs

crates.io Released API docs MIT licensed

一个正确的dotenv库,支持

  • 多行值
  • 变量替换

解析规则

  • BASIC=基本
  • 空行将被忽略
  • #开头的行被视为注释
  • #标记注释的开始(除非值被引号括起来)
  • 空值变成空字符串
  • 内部引号被保留
  • 未引号值的两端将移除空格
  • 单引号和双引号值将被转义
  • 单引号和双引号值的两端保持空格
  • 双引号值扩展换行符(MULTILINE="new\nline"变成
    MULTILINE: "new
    line"
    

扩展规则

  • $KEY将扩展任何名为 KEY 的环境变量
  • ${KEY}将扩展任何名为 KEY 的环境变量
  • $KEY将转义 $KEY 而不是扩展
  • ${KEY:-default}将首先尝试扩展任何名为 KEY 的环境变量。如果没有找到,则返回 default

用法

最简单、最常见的使用方式是在应用程序启动时调用 load,这将从当前目录或其父目录中名为 .env 的文件中加载环境变量。

如果您需要更多关于文件名或其位置的控制,可以使用 from_filenamefrom_pathfrom_read

示例

一个 .env 文件看起来像这样

# a comment, will be ignored
REDIS_ADDRESS=localhost:6379
MEANING_OF_LIFE=42

你可以选择性地在每个行前面加上单词 export,这样会方便你在 shell 中加载整个文件。

使用 dotenv 的一个示例项目如下

fn main() {
    for (key, value) in dotenv::vars() {
        println!("{}: {}", key, value);
    }
}

授权协议

MIT

依赖项

~1MB
~20K SLoC