# env `env` 是一个 Rust 实现的 dotenv 库,用于解析和加载 `.env` 文件中的环境变量。这个库提供了一种简单而强大的方式来管理你的应用程序的环境变量。 ## 特性 - 解析 `.env` 文件 - 加载环境变量到程序中 - 支持自定义文件路径 - 简单易用的 API - 支持注释和空行 - 线程安全 ## 安装 将以下内容添加到你的 Cargo.toml 文件中: ```toml [dependencies] env = "0.1.0" ``` ## 使用方法 ### 基本用法 最简单的使用方法是在你的 main 函数开始时调用 dotenv() 函数: ```rust use env::dotenv; fn main() { dotenv().expect("Failed to load .env file"); // 现在你可以使用 std::env::var 来获取环境变量 let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set"); println!("Database URL: {}", database_url); } ``` ### 高级用法 如果你需要更多控制,可以直接使用 Dotenv 结构体: ```rust use env::Dotenv; fn main() { let mut dotenv = Dotenv::new(); // 加载默认的 .env 文件 dotenv.load().expect("Failed to load .env file"); // 加载自定义文件 dotenv.load_file("custom.env").expect("Failed to load custom.env file"); // 手动设置变量 dotenv.set("CUSTOM_VAR", "custom_value"); // 获取变量值 if let Some(value) = dotenv.get("CUSTOM_VAR") { println!("CUSTOM_VAR: {}", value); } // 将所有变量应用到环境中 dotenv.apply(); } ``` ## API 文档 ### Dotenv 结构体 - new(): 创建一个新的 Dotenv 实例。 - load(): 加载默认的 .env 文件。 - load_file>(path: P): 加载指定路径的环境变量文件。 Dotenv 结构体 new(): 创建一个新的 Dotenv 实例。 load(): 加载默认的 .env 文件。 load_file>(path: P): 加载指定路径的环境变量文件。 set(key: &str, value: &str): 设置一个环境变量。 get(&self, key: &str) -> Option<&String>: 获取一个环境变量的值。 apply(): 将所有加载的环境变量应用到程序的环境中。 dotenv() 函数 这是一个便捷函数,它创建一个 Dotenv 实例,加载默认的 .env 文件,并应用所有变量。 .env 文件格式 .env 文件应该遵循以下格式: 每行一个 KEY=VALUE 对 以 # 开头的行被视为注释 空行会被忽略 值中的空格会被保留 例如: 这是一个注释 ``` DATABASE_URL=postgres://user:password@localhost/mydb API_KEY=abcdef123456 ENABLE_FEATURE=true ``` 注意事项 确保不要将包含敏感信息的 .env 文件提交到版本控制系统中。 在生产环境中,建议使用系统环境变量而不是 .env 文件。 ## 贡献 欢迎提交 issues 和 pull requests 来帮助改进这个项目。在提交 pull request 之前,请确保你的代码通过了所有测试,并且符合项目的代码风格。 ## 更新日志 0.1.0 初始版本 实现基本的 .env 文件解析和加载功能 提供 Dotenv 结构体和 dotenv() 便捷函数 ## 致谢 这个项目受到了原始 dotenv 项目的启发。