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.
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)
use dotenvy::dotenv;
use std::env;
fn main() {
// load environment variables from .env file
dotenv().expect(".env file not found");
for (key, value) in env::vars() {
println!("{key}: {value}");
}
}
The dotenv!
macro provided by dotenvy_macro
crate can be used.
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.
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.
This repo fixes:
- home directory works correctly (no longer using the deprecated
std::env::home_dir
) - 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
- improved docs
For a full list of changes, refer to the changelog.
Thank you very much for considering to contribute to this project! See CONTRIBUTING.md for details.
Note: Before you take the time to open a pull request, please open an issue first.
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.