Top 23 Configuration Open-Source Projects

  • viper

    Go configuration with fangs

    Project mention: Building RESTful API with Hexagonal Architecture in Go | | 2023-09-27

    Instead of directly accessing environment variables with os.Getenv(), integrating a configuration handler like viper might make it maintainable.

  • spacemacs

    A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!

    Project mention: Emacs 29.1 Released | | 2023-07-30
  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • .tmux

    🇫🇷 Oh my tmux! My self-contained, pretty & versatile tmux configuration made with ❤️

    Project mention: Advice to be more efficient with the terminal? | /r/ExperiencedDevs | 2023-02-27
  • PHP Dotenv

    Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.

    Project mention: Question Regarding Environment Variables | /r/PHPhelp | 2023-04-26

    Recently, I jumped to reading on the documentation of the function putenv() and define() and the array $_ENV to understand the different between all. Also, I looked at the library phpdotenv and how it handles environment variables since its the standard approach to go with when dealing with environment variables in PHP.

  • chezmoi

    Manage your dotfiles across multiple diverse machines, securely.

    Project mention: Sharing neovim settup | /r/neovim | 2023-09-22

    once i need a more complex solution (eg. for machine specific stuff), i'll probably switch to chezmoi which has more features and native windows support

  • hydra

    Hydra is a framework for elegantly configuring complex applications (by facebookresearch)

    Project mention: Hydra – a Framework for configuring complex applications | | 2023-09-24
  • POCO

    The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.

    Project mention: What are some C++ projects with high quality code that I can read through? | /r/cpp_questions | 2023-01-16
  • Mergify

    Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.

  • Symfony VarDumper

    Provides mechanisms for walking through any arbitrary PHP variable

  • craco

    Create React App Configuration Override, an easy and comprehensible configuration layer for Create React App.

    Project mention: Build a web editor with react-monaco-editor | | 2023-05-04

    Ejecting a React app is a bad idea because our application will lose all the React configurations and will not benefit from the CRA updates. Some solutions for ejecting our application include using packages like react-app-rewired or rewire. You can also use CRACO to eject your React application, but it needs you to install additional plugins.

  • jsonnet

    Jsonnet - The data templating language

    Project mention: What Is Wrong with TOML? | | 2023-09-13

    Maybe you'd like jsonnet:

    I find it particularly useful for configurations that often have repeated boilerplate, like ansible playbooks or deploying a bunch of "similar-but" services to kubernetes (with

    Dhall is also quite interesting, with some tradeoffs:

    A few years ago I did a small comparison by re-implementing one of my simpler ansible playbooks:

  • python-dotenv

    Reads key-value pairs from a .env file and can set them as environment variables. It helps in developing applications following the 12-factor principles.

    Project mention: What are the best ways to prevent writing secrets in the code. | /r/learnpython | 2023-06-03
  • dotenv

    A Ruby gem to load environment variables from `.env`. (by bkeepers)

    Project mention: Performance e elegância! Escrevendo uma CLI CRUD utilizando ScyllaDB e Ruby | | 2023-08-28


  • config

    configuration library for JVM languages using HOCON files

    Project mention: Hocon (Human-Optimized Config Object Notation) | | 2023-09-24
  • BulletinBoard

    General-purpose contextual cards for iOS

  • kelseyhightower/envconfig

    Golang library for managing configuration data from environment variables

    Project mention: REST API with Go, Chi, MySQL and sqlx | | 2023-06-23


  • dasel

    Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.

    Project mention: jq 1.7 Released | | 2023-09-06
  • cue

    The home of the CUE language! Validate and define text-based and dynamic configuration

    Project mention: An INI Critique of TOML | | 2023-09-21
  • Expose

    A beautiful, fully open-source, tunneling service - written in pure PHP (by beyondcode)

    Project mention: A beautiful, fully open-source, tunneling service – written in pure PHP | | 2023-06-25
  • env

    A simple and zero-dependencies library to parse environment variables into structs

    Project mention: Safely Load Environment Variables | /r/golang | 2023-03-24

    How is this compared to

  • Figaro

    Simple Rails app configuration

  • Symfony Dotenv

    Registers environment variables from a .env file (by symfony)

    Project mention: How do you handle Api keys and tokens? | /r/PHP | 2023-02-17

    Keys and tokens in .env.local per environment (in .gitignore obviously), with a placeholder in the .env. I use

  • ini

    Package ini provides INI file read and write functionality in Go

    Project mention: Convert any to string or alternative to any | /r/golang | 2022-12-02

    I am very new to golang and am trying to write a Program that uses INI Cobfiguration Files. The library that I am using, has built in functions to output the Key as a certain type (string, int, bool, etc). However as I will be accessing several different Keys of different types, I wrote a wrapper that takes the section and key name and the output type, passes that to the libraries functions and outputs the result as the any type. While trying to pass the output into another function that requires a string, it throws the error that it is unable to convert any to string as string requires type assertion. I couldn't find much about the any type, but it seems luke i will either need to redesign my wrapper function, use an alternative to any or find a way to convert any to string or []byte at least.

  • dynaconf

    Configuration Management for Python ⚙

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-09-27.

Configuration related posts


What are some of the best open-source Configuration projects? This list will help you:

Project Stars
1 viper 24,047
2 spacemacs 23,216
3 .tmux 19,932
4 PHP Dotenv 12,668
5 chezmoi 10,046
6 hydra 7,524
7 POCO 7,354
8 Symfony VarDumper 7,279
9 craco 7,213
10 jsonnet 6,433
11 python-dotenv 6,409
12 dotenv 6,395
13 config 5,984
14 BulletinBoard 5,324
15 kelseyhightower/envconfig 4,670
16 dasel 4,544
17 cue 4,228
18 Expose 4,082
19 env 3,847
20 Figaro 3,773
21 Symfony Dotenv 3,645
22 ini 3,316
23 dynaconf 3,228
Collect and Analyze Billions of Data Points in Real Time
Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.