figaro alternatives and similar packages
Based on the "Configuration" category.
Alternatively, view figaro alternatives based on common mentions on social networks and blogs.
-
hush
Release & Runtime configuration provider with support for AWS Secrets Manager, Google Secret Manager. -
configparser_ex
A simple Elixir parser for the same kind of files that Python's configparser library handles. -
hush_aws_secrets_manager
AWS Secrets Manager provider for hush. -
hush_gcp_secret_manager
Google Secret Manager provider for hush. -
CFEnv
Environmental helpers for cloudfoundry, parsing and returning values off VCAP_SERVICES and VCAP_APPLICATON
Get performance insights in less than 4 minutes
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.