figaro alternatives and similar packages
Based on the "Configuration" category.
Alternatively, view figaro alternatives based on common mentions on social networks and blogs.
-
Flasked
DISCONTINUED. Injecting ENV vars into application configuration at runtime (12factor app for Elixir) -
configparser_ex
A simple Elixir parser for the same kind of files that Python's configparser library handles -
mahaul
Supercharge your environment variables in Elixir. Parse and validate with compile time access guarantees, defaults, fallbacks and app pre-boot validations. -
Enux
utility package for loading, validating and documenting your app's configuration variables from env, json, jsonc and toml files at runtime and injecting them into your environment -
CFEnv
Environmental helpers for cloudfoundry, parsing and returning values off VCAP_SERVICES and VCAP_APPLICATON
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of figaro or a related project?
Popular Comparisons
README
Figaro
Port of @laserlemon's Figaro gem to Elixir. Please see original project for additional details and history. Documentation is lifted from @laserlemon's gem verbatim (where applicable) in an effort to provide full feature parity.
Getting Started
Add Figaro as a dependency in your mix.exs
file.
defp deps do
[{ :figaro, ">= 0.0.0" }]
end
You should also update your applications list to include Figaro:
def application do
[applications: [:figaro]]
end
After you are done, run mix deps.get
in your shell to fetch the dependencies.
Usage
Given the following configuration file:
# config/application.yml
foo: bar
baz: qux
You will have access to configuration values via Figaro.env
:
iex> Figaro.env.foo
"bar"
iex> Figaro.env.baz
"qux"
iex> Figaro.env
%{foo: "bar", baz: "qux"}
Figaro also sets ENV
with values defined in application.yml
:
iex> System.get_env("FOO")
"bar"
iex> System.get_env("BAZ")
"qux"
Please note: ENV
is a simple key/value store. All values will be converted
to strings. Deeply nested configuration structures are not possible.
Environment-Specific Configuration
Oftentimes, local configuration values change depending on your environment. In such cases, you can add environment-specific values to your configuration file:
# config/application.yml
foo: foo
bar: bar
test:
foo: sekret
bar: noway
You can also nullify configuration values for a specific environment:
# config/application.yml
foo: foo
bar: bar
test:
foo: ~
Assuming you are running from the test environment:
iex> System.get_env("FOO")
nil
iex> System.get_env("BAR")
"bar"
Please note: The environment names (test
above) are derived from Mix.env
.
Any other keys defining nested configuration values will be ignored.