store alternatives and similar packages
Based on the "Configuration" category.
Alternatively, view store alternatives based on common mentions on social networks and blogs.
-
kelseyhightower/envconfig
Golang library for managing configuration data from environment variables -
env
A simple and zero-dependencies library to parse environment variables into structs. -
koanf
Simple, lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. -
konfig
Composable, observable and performant config handling for Go for the distributed processing era -
cleanenv
✨Clean and minimalistic environment configuration reader for Golang -
gookit/config
📝 Go configuration manage(load,get,set). support JSON, YAML, TOML, INI, HCL, ENV and Flags. Multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,远程文件加载,支持数据合并,解析环境变量名 -
GoLobby/Config
A lightweight yet powerful configuration manager for the Go programming language -
gcfg
read INI-style configuration files into Go structs; supports user-defined types and subsections -
envconfig
Small library to read your configuration from environment variables -
joshbetz/config
🛠 A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. -
goConfig
goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. -
configuro
An opinionated configuration loading framework for Containerized and Cloud-Native applications. -
configuration
Library for setting values to structs' fields from env, flags, files or default tag -
configure
Configure is a Go package that gives you easy configuration of your project through redundancy -
hocon
go implementation of lightbend's HOCON configuration library https://github.com/lightbend/config -
uConfig
Lightweight, zero-dependency, and extendable configuration management library for Go -
go-up
go-up! A simple configuration library with recursive placeholders resolution and no magic. -
CONFLATE
Library providing routines to merge and validate JSON, YAML and/or TOML files -
go-ssm-config
Go utility for loading configuration parameters from AWS SSM (Parameter Store) -
Genv
Genv is a library for Go (golang) that makes it easy to read and use environment variables in your projects. It also allows environment variables to be loaded from the .env file. -
subVars
Substitute environment variables from command line for template driven configuration files. -
swap
Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). -
sprbox
Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars).
Less time debugging, more time building
Do you think we are missing an alternative of store or a related project?
Popular Comparisons
README
Store
Store is a dead simple configuration manager for Go applications.
I didn't like existing configuration management solutions like globalconf, tachyon or viper. First two just don't feel right and viper, imo, a little overcomplicated—definitely offering too much for small things. Store supports either JSON, TOML or YAML out-of-the-box and lets you register practically any other configuration format. It persists all of your configurations in either $XDG_CONFIG_HOME or $HOME on Linux and in %APPDATA% on Windows.
Look, when I say it's dead simple, I actually mean it:
package main
import (
"log"
"time"
"github.com/tucnak/store"
)
func init() {
// You must init store with some truly unique path first!
store.Init("cats-n-dogs/project-hotel")
}
type Cat struct {
Name string `toml:"naym"`
Clever bool `toml:"ayy"`
}
type Hotel struct {
Name string
Cats []Cat `toml:"guests"`
Opens *time.Time
Closes *time.Time
}
func main() {
var hotel Hotel
if err := store.Load("hotel.toml", &hotel); err != nil {
log.Println("failed to load the cat hotel:", err)
return
}
// ...
if err := store.Save("hotel.toml", &hotel); err != nil {
log.Println("failed to save the cat hotel:", err)
return
}
}
Store supports any other formats via the handy registration system: register the format once and you'd be able to Load and Save files in it afterwards:
store.Register("ini", ini.Marshal, ini.Unmarshal)
err := store.Load("configuration.ini", &object)
// ...