Skip to content

corpix/revip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

51f791c · Dec 10, 2022

History

53 Commits
Jul 14, 2022
Jul 9, 2022
Sep 22, 2020
Jul 14, 2022
Jul 9, 2022
Jul 9, 2022
May 27, 2022
May 27, 2022
Jul 14, 2022
May 27, 2022
Jul 14, 2022
Jul 14, 2022
Jul 14, 2022
Jul 14, 2022
Jul 14, 2022
May 27, 2022
Jul 14, 2022
Jul 14, 2022
Jul 14, 2022

Repository files navigation

revip

Dead-simple configuration loader.

It supports:

  • JSON, TOML, YAML and you could add your own format unmarshaler (see Unmarshaler type)
  • file, reader and environment sources support, also you could add your own (see Option type and sources.go)
  • extendable postprocessing support (defaults, validation, expansion, see Option type and postprocess.go)
  • dot-notation to access configuration keys

Godoc


example

run

Basic example showing basics about configuration loading:

  • default values
  • validation rules
  • config expansion (loading key from file)
  • working with nested types
  • unmarshaling from JSON, YAML, TOML
$ cd ./example/basic
$ go run ./main.go
(main.Config) {
 SerialNumber: (int) 1,
 Nested: (*main.NestedConfig)(0xc00000e0c0)({
  Value: (string) (len=11) "hello world",
  Flag: (bool) false
 }),
 MapNested: (map[string]*main.NestedConfig) {
 },
 SliceNested: ([]*main.NestedConfig) {
 },
 StringSlice: ([]string) <nil>,
 IntSlice: ([]int) (len=3 cap=3) {
  (int) 666,
  (int) 777,
  (int) 888
 },
 key: (string) (len=18) "super secret value"
}

Run basic example with some keys befined through environment variables:

environment variables are defined in makefile

$ make
(main.Config) {
 SerialNumber: (int) 2,
 Nested: (*main.NestedConfig)(0xc00000e0c0)({
  Value: (string) (len=12) "\"hello user\"",
  Flag: (bool) false
 }),
 MapNested: (map[string]*main.NestedConfig) {
 },
 SliceNested: ([]*main.NestedConfig) {
 },
 StringSlice: ([]string) <nil>,
 IntSlice: ([]int) (len=3 cap=3) {
  (int) 888,
  (int) 777,
  (int) 666
 },
 key: (string) (len=18) "super secret value"
}

license

public domain

About

Configuration loader for Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published