Top 23 Config Open-Source Projects

  • GitHub repo Nacos

    an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.

  • GitHub repo react-app-rewired

    Override create-react-app webpack configs without ejecting

    Project mention: Fullstack GraphQL starter kit Mid-2021 update | dev.to | 2021-06-03

    Switch to craco from react-app-rewired for better CRA v4 support (breaking change!)

  • GitHub repo node-config

    Node.js Application Configuration

    Project mention: How To Use GitHub OAuth in your App Like a Pro | dev.to | 2021-05-22

    I used the config package to hide my client_id and client_secret just in case of publishing to GitHub. You should do the same.

  • GitHub repo jsonnet

    Jsonnet - The data templating language

    Project mention: The Norway Problem | news.ycombinator.com | 2021-04-03

    For hand-writing I love jsonnet, which produces JSON, is much more convenient to write, and has some templating, functions etc. https://jsonnet.org/

    You wouldn't serialize data structures to jsonnet though, you'd just generate JSON.

  • GitHub repo electron-store

    Simple data persistence for your Electron app or module - Save and load user preferences, app state, cache, etc

    Project mention: [Electron][TypeScript] output/input files | dev.to | 2021-05-15

    GitHub - sindresorhus/electron-store: Simple data persistence for your Electron app or module - Save and load user preferences, app state, cache, etc

  • GitHub repo Advanced SSH config

    :computer: make your ssh client smarter

    Project mention: Possible to configure ssh path for Tramp? | reddit.com/r/emacs | 2021-05-07

    I'm using assh (https://github.com/moul/assh) in terminal and it is aliased to ssh, however this does not work with tramp, is there a way to define ssh path for tramp? Thanks.

  • GitHub repo dynaconf

    Configuration Management for Python ⚙

    Project mention: Stop hardcoding and start using config files instead, it takes very little effort with configparser | reddit.com/r/Python | 2021-04-25
  • GitHub repo RailsConfig

    Easiest way to add multi-environment yaml settings to Rails, Sinatra, Pandrino and other Ruby projects. (by rubyconfig)

  • GitHub repo node-convict

    Featureful configuration management library for Node.js

    Project mention: A functional command-line parser toolkit that grows with your program | reddit.com/r/node | 2021-01-04

    Thoughts on how convict does it? It's my current favorite. It'd be a hard sell for me not to get effortless tiered-overrides straight out of the box.

  • GitHub repo gray-matter

    Smarter YAML front matter parser, used by metalsmith, Gatsby, Netlify, Assemble, mapbox-gl, phenomic, and many others. Simple to use, and battle tested. Parses YAML by default but can also parse JSON Front Matter, Coffee Front Matter, TOML Front Matter, and has support for custom parsers.

    Project mention: AMP CMS: Finishing & deploying to DigitalOcean | dev.to | 2021-01-10

    Markdown content is parsed by gray-matter and then rendered to html by marked with an amp-image tag instead of a img. You can pass parameters (like width, height, layout and etc) to an image tag with the query parameters:

  • GitHub repo gomplate

    A flexible commandline tool for template rendering. Supports lots of local and remote datasources.

    Project mention: Show HN: Stamp turns a folder into a plain text file and a file into a folder | news.ycombinator.com | 2021-02-07

    Cookiecutter is nice but it requires an entire python install to run, which is a big thing to ask for some of the scenarios mentioned by the tool creator (like someone going through a simple learning tutorial which might not even be using python at all).

    IMHO gomplate is a nicer alternative that's just a single static go-based tool that can do everything cookiecutter does and a lot more: https://github.com/hairyhenderson/gomplate

  • GitHub repo config-rs

    ⚙️ Layered configuration system for Rust applications (with strong support for 12-factor applications).

    Project mention: Best way to set environment for Rust App | reddit.com/r/rust | 2021-03-22

    Checking an environment variable is very easy with std::env::var or similar. If you have other bits of configuration that also change—which is typical; things like DB connection strings—you may consider a more full-featured solution like https://docs.rs/config/0.10.1/config/ (pay particular attention to this example, which seems to be very close to what you want: https://github.com/mehcode/config-rs/blob/master/examples/hierarchical-env/src/settings.rs ).

  • GitHub repo dasel

    Query, update and convert data structures from the command line. Comparable to jq/yq but supports JSON, TOML, YAML, XML and CSV with zero runtime dependencies.

    Project mention: Dasel – one tool to rule them all | news.ycombinator.com | 2021-06-02
  • GitHub repo strictyaml

    Type-safe YAML parser and validator.

    Project mention: The Norway Problem | news.ycombinator.com | 2021-04-03

    Not YAML by itself, but there are libraries that parse a YAML-like format that is typed. For example this one: https://hitchdev.com/strictyaml/. Technically, it is not compatible with the YAML spec.

  • GitHub repo conf

    Simple config handling for your app or module

  • GitHub repo ini-parser

    Read/Write an INI file the easy way!

    Project mention: The Fssf Mentorship Schedule Planner | reddit.com/r/fsharp | 2020-12-29

    Alternatively, instead of using a type provider (which isn't simple by any means), you can use any number of CSV or INI parsers, e.g. https://joshclose.github.io/CsvHelper/ or https://github.com/rickyah/ini-parser

  • GitHub repo konfig

    Composable, observable and performant config handling for Go for the distributed processing era

  • GitHub repo easy-wg-quick

    Creates Wireguard configuration for hub and peers with ease

    Project mention: Using IPv6 from a VPS provider in my home network via wg. | reddit.com/r/WireGuard | 2021-03-02

    I found a great script to quickly setup wireguard "hub" (aka gateway) server and some clients in https://github.com/burghardt/easy-wg-quick. However, public unicast IPv6 (NDP proxy) doesn't seem to be working for me. While my clients do have a static IPv6 assigned by wireguard due to the config, external traffic from the internet is not reaching the peers (firewalls are disabled).

  • GitHub repo koanf

    Light weight, extensible, configuration management library for Go. Built in support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.

    Project mention: Is Viper necessary if my app is only using environment variables? | reddit.com/r/golang | 2021-02-19

    I use Koanf, much simpeler with the same options https://github.com/knadh/koanf

  • GitHub repo nestjs-config

    Config module for nestjs using dotenv :key:

    Project mention: Tired of writing type-castings, so I made yet another configuration module... | reddit.com/r/Nestjs_framework | 2021-05-19

    There are various popular configuration modules for Nest framework, such as the official configuration module, nestjs-config and nestjs-easyconfig. These modules can help to manage configurations, validate them, and load them through the ConfigService. But that's when type-safety is gone. For example:

  • GitHub repo GokuRakuJoudo

    config karabiner with ease

    Project mention: modifying prefix key (control+b) to command+e using karabiner-element in Mac | reddit.com/r/tmux | 2021-04-30

    Hey! I recommend you to check Goku https://github.com/yqrashawn/GokuRakuJoudo. In summary, what it does is that it gives you a layer over Karabiner to write key modifiers easier. Then you can add that file to you dotfiles and clone it in any machine you need.

  • GitHub repo awesome-dotfiles

    Dotfiles for awesome people using the awesomewm linux environment (by WillPower3309)

    Project mention: Manjaro-Awesome | reddit.com/r/ManjaroLinux | 2021-06-03

    In case you didn't know these kinds of files are often called dotfiles (just because they're often named as something like .config) You can find people's personal dotfiles all over github or by just googling awesomewm dotfiles. I personally like Derek Taylor's (DistroTube) dotfiles, but I also found these right away by googling.

  • GitHub repo Airframe

    Essential Building Blocks for Scala

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 2021-06-03.

Index

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

Project Stars
1 Nacos 18,091
2 react-app-rewired 8,198
3 node-config 5,216
4 jsonnet 4,869
5 electron-store 2,980
6 Advanced SSH config 2,190
7 dynaconf 1,782
8 RailsConfig 1,767
9 node-convict 1,727
10 gray-matter 1,699
11 gomplate 1,369
12 config-rs 1,019
13 dasel 920
14 strictyaml 879
15 conf 745
16 ini-parser 680
17 konfig 607
18 easy-wg-quick 546
19 koanf 510
20 nestjs-config 506
21 GokuRakuJoudo 499
22 awesome-dotfiles 475
23 Airframe 464