mirror of https://github.com/ledisdb/ledisdb.git
2ff56553d9
* Use Dep instead of Glide for managing dependencies * Run tests on the latest two versions of go * Use older goleveldb * Don't test vendor (default in go 1.9+) * Drop Go 1.6 from tests - it's old and I really don't want to deal with it. * Stop testing with Go 1.7 |
||
---|---|---|
.. | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
benchmark.json | ||
benchmark.sh | ||
benchmark.toml | ||
benchmark.yml | ||
benchmark_test.go | ||
doc.go | ||
doc_test.go | ||
example-crlf.toml | ||
example.toml | ||
keysparsing.go | ||
keysparsing_test.go | ||
lexer.go | ||
lexer_test.go | ||
marshal.go | ||
marshal_test.go | ||
marshal_test.toml | ||
parser.go | ||
parser_test.go | ||
position.go | ||
position_test.go | ||
test.sh | ||
token.go | ||
token_test.go | ||
toml.go | ||
toml_test.go | ||
tomltree_create.go | ||
tomltree_create_test.go | ||
tomltree_write.go | ||
tomltree_write_test.go |
README.md
go-toml
Go library for the TOML format.
This library supports TOML version v0.4.0
Features
Go-toml provides the following features for using data parsed from TOML documents:
- Load TOML documents from files and string data
- Easily navigate TOML structure using Tree
- Mashaling and unmarshaling to and from data structures
- Line & column position data for all parsed elements
- Query support similar to JSON-Path
- Syntax errors contain line and column numbers
Import
import "github.com/pelletier/go-toml"
Usage example
Read a TOML document:
config, _ := toml.Load(`
[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{}
toml.Unmarshal(doc, &config)
fmt.Println("user=", config.Postgres.User)
Or use a query:
// use a query to gather elements without walking the tree
q, _ := query.Compile("$..[user,password]")
results := q.Execute(config)
for ii, item := range results.Values() {
fmt.Println("Query result %d: %v", ii, item)
}
Documentation
The documentation and additional examples are available at godoc.org.
Tools
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
Contribute
Feel free to report bugs and patches using GitHub's pull requests system on pelletier/go-toml. Any feedback would be much appreciated!
Run tests
You have to make sure two kind of tests run:
- The Go unit tests
- The TOML examples base
You can run both of them using ./test.sh
.
License
The MIT License (MIT). Read LICENSE.