Go library for the TOML format.
This library supports TOML version v0.4.0
Go-toml provides the following features for using data parsed from TOML documents:
import "github.com/pelletier/go-toml"
Read a TOML document:
config, _ := toml.LoadString(` [postgres] user = "pelletier" password = "mypassword"`) // retrieve data directly user := config.Get("postgres.user").(string) // or using an intermediate object postgresConfig := config.Get("postgres").(*toml.Tree) password = postgresConfig.Get("password").(string)
Or use Unmarshal:
type Postgres struct {
User string
Password string
}
type Config struct {
Postgres Postgres
}
doc := []byte(`
[postgres]
user = "pelletier"
password = "mypassword"`)
config := Config{}
Unmarshal(doc, &config)
fmt.Println("user=", config.Postgres.User)
Or use a query:
// use a query to gather elements without walking the tree results, _ := config.Query("$..[user,password]") for ii, item := range results.Values() { fmt.Println("Query result %d: %v", ii, item) }
The documentation and additional examples are available at godoc.org.
Go-toml provides two handy command line tools:
tomll
: Reads TOML files and lint them.
go install github.com/pelletier/go-toml/cmd/tomll tomll --help
tomljson
: Reads a TOML file and outputs its JSON representation.
go install github.com/pelletier/go-toml/cmd/tomljson tomljson --help
Feel free to report bugs and patches using GitHub's pull requests system on pelletier/go-toml. Any feedback would be much appreciated!
You have to make sure two kind of tests run:
You can run both of them using ./test.sh
.
The MIT License (MIT). Read LICENSE.