conform alternatives and similar packages
Based on the "Configuration" category.
Alternatively, view conform alternatives based on common mentions on social networks and blogs.
Vapor9.0 0.0 conform VS VaporRuntime configuration system for Elixir
confex8.3 0.0 conform VS confexUseful helper to read and use application configuration from environment variables.
dotenv7.6 0.0 conform VS dotenvA port of dotenv to Elixir
hush6.4 0.0 conform VS hushHush is a runtime configuration loader for Elixir applications
Skogsrå6.1 0.0 conform VS SkogsråLibrary to manage OS environment variables and application configuration options with ease
weave6.0 4.0 conform VS weaveJIT configuration loader that works with Kubernetes and Docker Swarm.
ex_conf5.0 0.0 conform VS ex_confSimple Elixir Configuration Management.
Flasked4.7 0.0 conform VS FlaskedInjecting ENV vars into application configuration at runtime (12factor app for Elixir)
configparser_ex3.4 0.0 conform VS configparser_exA simple Elixir parser for the same kind of files that Python's configparser library handles
hush_aws_secrets_managerAn AWS Secrets Manager Provider for Hush
hush_gcp_secret_managerA Google Secret Manager Provider for Hush
mahaul2.5 8.5 conform VS mahaulSupercharge your environment variables in Elixir. Parse and validate with compile time access guarantees, defaults, fallbacks and app pre-boot validations.
figaro2.3 0.0 conform VS figaroFigaro for Elixir
figaro_elixir2.2 0.0 conform VS figaro_elixirEnvironmental variables manager based on Figaro for Elixir projects
sweetconfig1.5 0.0 conform VS sweetconfigsomething to forget about configuration in releases
Enux0.4 0.0 conform VS Enuxutility 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
CFEnv0.1 0.0 conform VS CFEnvEnvironmental helpers for cloudfoundry, parsing and returning values off VCAP_SERVICES and VCAP_APPLICATON
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of conform or a related project?
See the full documentation here.
The definition of conform is "Adapt or conform oneself to new or different conditions". As this library is used to adapt your application to its deployed environment, I think it's rather fitting. It's also a play on the word configuration, and the fact that Conform uses an init-style configuration, maintained in a
IMPORTANT: I am discontinuing maintenance of this project moving forward, in favor of a replacement based
on TOML, found here. It is has a formal specification and supports
much richer ways of expressing complex data (maps and lists), and supports several Elixir data types out of
the box. The
toml-elixir library also provides a simple transformation mechnanism for extending the basic set
of datatypes with your own (including structs and records). Everything you could accomplish with Conform is doable
toml-elixir, and in a cleaner, easier to maintain format. In addition, it has full support for Distillery 2.0's
config provider framework, allowing you to natively configure your Elixir releases with TOML config files
If anyone is interested in taking over maintainership of this library, please reach out to me here via issue, or by email, and I'll be glad to discuss the transition with you.
It provides the following features:
- An easy-to-use configuration file to end-users and/or system administrators.
- Post-processing of simplified configuration options to more complex forms required by your application, without pushing that complexity on the user.
- Richly-typed configuration options, such as IP addresses, URIs, etc., with the ability to define your own types.
- Automatic validation of end-user configuration against a schema
- Keep documentation of configuration options synced up automatically
- Hidden configuration options: hide advanced options from end-users, but leave them available for power users or developers
- Allow fetching information dynamically when the configuration is evaluated.
- Can be used with releases
Conform was designed for Elixir applications which are deployed via releases built with
distillery. It was created in order
to resolve some painful issues with the configuration mechanisms provided out of the box by both Erlang and Elixir.
Elixir offers a convenient configuration mechanism via
config/config.exs, but it has downsides:
- To change config settings, it requires you to recompile your app to regenerate the app.config/sys.config files used by the VM. Alternatively you can modify the sys.config file directly during deployment, using Erlang terms. Neither of these things are ops-friendly, or necessarily accessible to sysadmins who may not understand Elixir or Erlang semantics.
- You can put comments in
config/config.exs, but once transformed to app.config/sys.config, those comments are lost, leaving sysadmins lost when trying to understand what configuration values are allowed and what they do.
- There is no config validation
- You can't offer a nice interface for configuration to your apps users via something akin to conform's translations. They have to know how to work in Elixir terms, which is pleasant enough for a dev, but not so much for someone unfamiliar with programming.
Conform is intended to fix these problems in the following way:
- It uses an init-style configuration, which should be very familiar to any sysadmin.
- It is intended to be used during the release process, once your app has been deployed.
- Conform works by taking the schema, the .conf file, and
config.exsif it is being used, and combines them into the
sys.configfile used by the Erlang VM. However, unlike
config.exs, you can bring the .conf into production with you, and use it for configuration instead of
sys.config. This means that the docs provided in your schema file are available to the users configuring your application in production. The .conf is validated when it is parsed as well, so your users will get immediate feedback if they've provided invalid config settings.
I'm glad to hear from anyone using this on what problems they are having, if any, and any ideas you may have. Feel free to open issues on the tracker or come find me in
#elixir-lang on freenode.
The .conf parser in
conform_parse.peg is licensed under Apache 2.0, per Basho.
The rest of this project is licensed under the MIT license. Use as you see fit.
*Note that all licence references and agreements mentioned in the conform README section above are relevant to that project's source code only.