Go Configuration

Open-source Go projects categorized as Configuration

Top 23 Go Configuration Projects

  • viper

    Go configuration with fangs

    Project mention: Proxy Server in Go | dev.to | 2024-01-20

    The code uses Viper to load configuration files in the application.

  • chezmoi

    Manage your dotfiles across multiple diverse machines, securely.

    Project mention: Ask HN: Did macOS Sonoma break your iCloud setup? | news.ycombinator.com | 2024-01-03

    > A warning, not an admonishment: Use Apple services in a novel or unsupported manner and you're asking for trouble.

    +1

    I've always had sync issues with iCloud Drive when storing developer projects and related things there. It ends up stuck or confused or conflicted but tries to resolve the merge conflicts opaquely and it's hard to know there's a problem in real time vs until later when you find something broken. I keep all dev things out of iCloud after getting burned by this enough times over the years.

    To OP: Consider a repo dotfiles setup like using Chezmoi or similar. Transitioning to it was less friction than I expected and the only downside really is having to remember to commit changes across devices.

    https://github.com/twpayne/chezmoi

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • kelseyhightower/envconfig

    Golang library for managing configuration data from environment variables

    Project mention: newbie here looking for a framework | /r/golang | 2023-10-03

    To configure the app I'd take a look at https://github.com/kelseyhightower/envconfig

  • 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 | news.ycombinator.com | 2023-09-06
  • cue

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

    Project mention: Show HN: Workout Tracker – self-hosted, single binary web application | news.ycombinator.com | 2024-02-29

    Where `kube.cue` sets reasonable defaults (e.g. image is /). The "cluster" runs on a mini PC in my basement, and I have a small Digital Ocean VM with a static IP acting as an ingress (networking via Tailscale). Backups to cloud storage with restic, alerting/monitoring with Prometheus/Grafana, Caddy/Tailscale for local ingress.

    [1] https://www.talos.dev/

    [2] https://cuelang.org/

  • env

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

  • ini

    Package ini provides INI file read and write functionality in Go

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • koanf

    Simple, extremely lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.

    Project mention: Nees help install knadh/koanf | /r/golang | 2023-05-27

    LINK: https://github.com/knadh/koanf

  • tanka

    Flexible, reusable and concise configuration for Kubernetes

    Project mention: Why the fuck are we templating YAML? (2019) | news.ycombinator.com | 2024-01-23

    I would recommend implementing a similar API to Grafana Tanka: https://tanka.dev

    When you "synthesise", the returned value should be an array or an object.

    1. If it's an object, check if it has an `apiVersion` and `kind` key. If it does, yield that as a kubernetes object and do not recurse.

  • go-arg

    Struct-based argument parsing in Go

    Project mention: Go-Arg: Struct-based argument parsing in Go | news.ycombinator.com | 2023-12-27
  • go-toml

    Go library for the TOML file format

    Project mention: What Is Wrong with TOML? | news.ycombinator.com | 2023-09-13

    I wrote one of the Go implementations [0] when TOML was announced and have maintained it since.

    As a library implementor, I wish arrays would hold only one type at a time, but I get that could be useful for users. But as a user, I wish tables were fully defined once (more can't be added up later in the file), especially when using larger files.

    [0]: https://github.com/pelletier/go-toml

  • ytt

    YAML templating tool that works on YAML structure instead of text

    Project mention: 10 Ways for Kubernetes Declarative Configuration Management | dev.to | 2024-01-01

    YTT - YTT is a templating tool that understands YAML structure. It helps you easily configure complex software via reusable templates and user provided values using the Starlark language.

  • cleanenv

    ✨Clean and minimalistic environment configuration reader for Golang

  • drago

    ☁️ Securely connect anything with WireGuard® and manage all your networks from a single place.

  • konfig

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

  • tyson

    🥊 TypeScript as a Configuration Language. TySON stands for TypeScript Object Notation

    Project mention: TySON: TypeScript Object Notation | news.ycombinator.com | 2024-02-04
  • gookit/config

    📝 Go configuration manage(load,get,set,export). support JSON, YAML, TOML, Properties, INI, HCL, ENV and Flags. Multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,远程文件加载,支持数据合并,解析环境变量名 (by gookit)

    Project mention: topoconfig: enhancing config declarations with graphs | dev.to | 2023-10-03

    gookit/config

  • aconfig

    Simple, useful and opinionated config loader.

  • resticprofile

    Configuration profiles manager and scheduler for restic backup

    Project mention: Rclone syncs your files to cloud storage | news.ycombinator.com | 2024-01-26

    The main disadvantage with pure Restic is that you usually have to end up writing your own shell scripts for some configuration management because Restic itself has none of that.

    Fortunately there is https://github.com/creativeprojects/resticprofile to solve that problem.

  • confita

    Load configuration in cascade from multiple backends into a struct

  • isopod

    An expressive DSL and framework for Kubernetes configuration without YAML

  • pets

    A configuration management system for Pets, not Cattle

  • jk

    Configuration as Code with ECMAScript

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

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 2024-02-29.

Go Configuration related posts

Index

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

Project Stars
1 viper 25,507
2 chezmoi 11,467
3 kelseyhightower/envconfig 4,873
4 dasel 4,832
5 cue 4,698
6 env 4,280
7 ini 3,394
8 koanf 2,303
9 tanka 2,182
10 go-arg 1,849
11 go-toml 1,603
12 ytt 1,570
13 cleanenv 1,410
14 drago 1,094
15 konfig 644
16 tyson 525
17 gookit/config 520
18 aconfig 514
19 resticprofile 499
20 confita 483
21 isopod 460
22 pets 459
23 jk 398
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com