Programming language: Go
License: MIT License
Tags: Configuration    
Latest version: v1.3.0

goConfig alternatives and similar packages

Based on the "Configuration" category.
Alternatively, view goConfig alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of goConfig or a related project?

Add another 'Configuration' Package



Build Status Go Report Card Test Coverage Maintainability GoDoc Go project version MIT Licensed Gitpod Ready-to-Code

goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.


go get github.com/gosidekick/goconfig


package main

import "github.com/gosidekick/goconfig"

step 1: Declare your configuration struct,
it may or may not contain substructures.

type mongoDB struct {
    Host string `cfgDefault:"example.com" cfgRequired:"true"`
    Port int    `cfgDefault:"999"`

type configTest struct {
    Domain    string
    DebugMode bool `json:"db" cfg:"db" cfgDefault:"false"`
    MongoDB   mongoDB
    IgnoreMe  string `cfg:"-"`

func main() {

    // step 2: Instantiate your structure.
    config := configTest{}

    // step 3: Pass the instance pointer to the parser
    err := goconfig.Parse(&config)
    if err != nil {

       The parser populated your struct with the data
       it took from environment variables and command
       line and now you can use it.

    println("config.Domain......:", config.Domain)
    println("config.DebugMode...:", config.DebugMode)
    println("config.MongoDB.Host:", config.MongoDB.Host)
    println("config.MongoDB.Port:", config.MongoDB.Port)

With the example above try environment variables like $DOMAIN or $MONGODB_HOST and run the example again to see what happens.

You can also try using parameters on the command line, try -h to see the help.


  • Fork the repo on GitHub
  • Clone the project to your own machine
  • Create a branch with your modifications git checkout -b fantastic-feature.
  • Then commit your changes git commit -m 'Implementation of new fantastic feature'
  • Make a push to your branch git push origin fantastic-feature.
  • Submit a Pull Request so that we can review your changes

*Note that all licence references and agreements mentioned in the goConfig README section above are relevant to that project's source code only.