goyaml
Differences between revisions 13 and 15 (spanning 2 versions)
2815
Comment:
|
119
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
<<TableOfContents>> | Details about the Go yaml package were moved to the GitHub project page: |
Line 3: | Line 3: |
== What is it? == The goyaml package enables [[http://golang.org|Go]] programs to very comfortably encode and decode YAML values. It was developed within Canonical as part of the [[https://juju.ubuntu.com|juju]] project, and is based on a pure Go port of the well-known C [[http://pyyaml.org/wiki/LibYAML|libyaml]] library to parse and generate YAML data quickly and reliably. == Compatibility == goyaml is almost compatible with YAML 1.1, including support for anchors, tags, etc. There are still a few missing bits, such as document merging, base-60 floats (huh?), and multi-document unmarshalling. These features are not hard to add, and will be introduced as necessary. == API documentation == The API documentation is currently available at: http://godoc.org/launchpad.net/goyaml == Example == Here is a simple example: {{{ package main import ( "launchpad.net/goyaml" "fmt" ) var data = ` a: Easy! b: c: 2 d: [3, 4] ` type T struct { A string B struct{C int; D []int ",flow"} } func main() { t := T{} err := goyaml.Unmarshal([]byte(data), &t) if err != nil { panic(err) } fmt.Printf("--- t:\n%v\n\n", t) d, err := goyaml.Marshal(&t) if err != nil { panic(err) } fmt.Printf("--- t dump:\n%s\n\n", string(d)) m := make(map[interface{}]interface{}) err = goyaml.Unmarshal([]byte(data), &m) if err != nil { panic(err) } fmt.Printf("--- m:\n%v\n\n", m) d, err = goyaml.Marshal(&m) if err != nil { panic(err) } fmt.Printf("--- m dump:\n%s\n\n", string(d)) } }}} This example will generate the following output: {{{ --- t: {Easy! {2 [3 4]}} --- t dump: a: Easy! b: c: 2 d: [3, 4] --- m: map[a:Easy! b:map[c:2 d:[3 4]]] --- m dump: a: Easy! b: c: 2 d: - 3 - 4 }}} == Source code == To obtain the source code, use [[http://bazaar.canonical.com|Bazaar]] to download it from Launchpad: {{{ $ bzr branch lp:goyaml }}} == Reporting bugs == Please report bugs at: https://launchpad.net/goyaml == How to build and install goyaml == To make use of goyaml, just run the following command: {{{ $ go get launchpad.net/goyaml }}} == Running tests == To run tests, first install [[http://labix.org/gocheck|gocheck]] with: {{{ $ go get launchpad.net/gocheck }}} Then run gotest as usual: {{{ $ go test }}} == License == goyaml is licensed under the LGPL. == Contact == This project is being developed under the [[https://juju.ubuntu.com|juju]] project at [[http://www.canonical.com|Canonical]]. To get in touch, send a message to the juju mailing list at: <juju-dev@lists.ubuntu.com> |
https://github.com/go-yaml/go-yaml-v1 |
Details about the Go yaml package were moved to the GitHub project page:
goyaml (last edited 2014-12-09 23:25:57 by foka)