7 releases
0.15.7 | Mar 22, 2023 |
---|---|
0.15.6 | Oct 17, 2022 |
0.15.5 | Sep 19, 2022 |
0.15.3 | Aug 30, 2022 |
0.15.1 | Feb 28, 2022 |
#10 in Configuration
1,988,224 downloads per month
Used in 1,553 crates
(501 directly)
49KB
1K
SLoC
dotenvy
A well-maintained fork of the dotenv crate.
This crate is the suggested alternative for dotenv
in security advisory RUSTSEC-2021-0141.
This library loads environment variables from a .env file. This is convenient for dev environments.
Components
dotenvy
crate - A well-maintained fork of thedotenv
crate.dotenvy_macro
crate - A macro for compile time dotenv inspection. This is a fork ofdotenv_codegen
.dotenvy
CLI tool for running a command using the environment from a .env file (currently Unix only)
Usage
Loading at runtime
use std::env;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
// Load environment variables from .env file.
// Fails if .env file not found, not readable or invalid.
dotenvy::dotenv()?;
for (key, value) in env::vars() {
println!("{key}: {value}");
}
Ok(())
}
Loading at compile time
The dotenv!
macro provided by dotenvy_macro
crate can be used.
Warning: there is an outstanding issue with rust-analyzer (rust-analyzer #9606) related to the dotenv!
macro
Minimum supported Rust version
Currently: 1.56.1
We aim to support the latest 8 rustc versions - approximately 1 year. Increasing MSRV is not considered a semver-breaking change.
Why does this fork exist?
The original dotenv crate has not been updated since June 26, 2020. Attempts to reach the authors and present maintainer were not successful (dotenv-rs/dotenv #74).
This fork intends to serve as the development home for the dotenv implementation in Rust.
What are the differences from the original?
This repo fixes:
- more helpful errors for
dotenv!
(dotenv-rs/dotenv #57)
It also adds:
- multiline support for environment variable values
io::Read
support viafrom_read
andfrom_read_iter
- override support via
dotenv_override
,from_filename_override
,from_path_override
andfrom_read_override
- improved docs
For a full list of changes, refer to the changelog.
The legend
Legend has it that the Lost Maintainer will return, merging changes from dotenvy
into dotenv
with such thrust that all Cargo.toml
s will lose one keystroke. Only then shall the Rust dotenv crateverse be united in true harmony.
Until then, this repo dutifully carries on the dotenv torch. It is actively maintained. Contributions and PRs are very welcome!
Dependencies
~235KB