🚀 QEnv
一个极致轻量、类型安全、零克隆(Zero-Clone)的 Rust 环境变量管理库。
✨ 特性
- ⚡ 极致性能: 基于
'static str引用,读取环境变量无需克隆String。 - 🛡️ 类型安全: 通过宏定义 Tag 结构体,消除拼写错误,支持强类型转换。
- 📦 极简 API: 只需
use qenv;即可通过qenv::get(KEY)或KEY.get()自由切换。 - 🔌 灵活初始化: 内置
dotenvy支持(可选),支持全局单次初始化校验。
📦 安装
在 Cargo.toml 中添加:
[]
= "0.1.0"
🛠️ 快速开始
1. 定义与初始化
use qenv;
// 使用宏批量定义环境变量 Tag
define!
2. 获取变量 (两种风格)
你可以根据喜好选择函数式调用或对象式调用:
// 风格 A: 函数式调用 (推荐,语义清晰)
let db = get;
let port: u16 = take;
// 风格 B: 结构体方法调用
let debug = IS_DEBUG.;
3. 安全处理
如果不确定变量是否存在,可以使用 try_ 系列方法:
match try_get
🧩 进阶配置
关闭默认的 Dotenv 支持
如果你不需要加载 .env 文件(例如在生产环境 Docker 中),可以关闭默认 Feature 以减少依赖:
[]
= { = "0.1.0", = false }
📑 错误类型说明
qenv 提供结构化的 EnvError 以便精确处理异常:
InitializeError: 重复初始化。NotInitialized: 未调用init()就尝试读取。Missing(name): 变量缺失且没有默认值。ParseError: 字符串转换为目标类型(如i32,bool)失败。
🤝 贡献
欢迎提交 Issue 或 Pull Request!
📜 许可证
本项目采用 MIT 许可证。