I’ve recently resurrected the DotEnv.jl package, and am delighted to announce the 1.0 release! ![]()
The codebase has been entirely rewritten, and should now be both more robust and featureful.
In particular, we now have:
- A specified
.envparsing methodology, with support for everything but multi-line values and shell execution from the canonical (Ruby).envimplementation. This includes- Interpolated values, e.g.
$foo - Default values, e.g.
${foo:-bar}
- Interpolated values, e.g.
- The ability to load and unload multiple
.envfiles, and have values and interpolations re-resolved correctly - The ability to load
.envfiles into arbitraryDict{String,String}s - Functions (
config/parse) to read/parse a.envfile without modifying any env dicts
Enjoy!
I’m well aware that in the meantime ConfigEnv.jl has popped up, but I think it’s well worth having DotEnv.jl be a great package for .env files in its own right. Comparatively, ConfigEnv has a more sophisticated/complicated methodology for resolving dependencies in interpolations (I just run with the “if it works in the shell, it will work here, and vice versa” approach), and does not support the unloading functionality implemented in DotEnv.