goyaml
Differences between revisions 1 and 21 (spanning 20 versions)
2813
Comment:
|
← Revision 21 as of 2014-12-09 23:25:57 ⇥
682
Add a linebreak to make a paragraph look better.
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
== What is it? == | Details about the Go yaml package were moved from to http://launchpad.net/goyaml the GitHub project page: |
Line 3: | Line 3: |
The goyaml package enables [[http://golang.org|Go]] programs to very comfortably encode and decode YAML values. |
https://github.com/go-yaml/yaml/tree/v1 |
Line 6: | Line 5: |
It was developed within Canonical as part of an experiment related to using the Go language with the [[https://launchpad.net/ensemble|Ensemble]] project. |
The import path for the package was, in March 2014, '''`"gonuts.org/v1/yaml"`''', but has since been moved to '''`"gopkg.in/yaml.v1"`'''. |
Line 9: | Line 7: |
goyaml internally uses the C [[http://pyyaml.org/wiki/LibYAML|libyaml]] library to parse and generate YAML data fast and reliably. It ships with all the necessary files, though, and has no external dependencies besides Go itself. == API documentation == The API documentation is currently available at: http://goneat.org/pkg/goyaml == Example == Here is a simple example which connects to !ZooKeeper, waits for the session to be established, and attempts to create a node: {{{ package main import ( "goyaml" "fmt" ) var data = ` a: Easy! b: c: 2 d: [3, 4] ` type T struct { A string B struct{C int; D []int "/f"} } func main() { t := T{} err := goyaml.Unmarshal([]byte(data), &t) if err != nil { panic(err.String()) } fmt.Printf("--- t:\n%v\n\n", t) d, err := goyaml.Marshal(&t) 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.String()) } fmt.Printf("--- m:\n%v\n\n", m) d, err = goyaml.Marshal(&m) 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] |
A newer '''`"gopkg.in/yaml.v2"`''' is now also available with an expanded API. See http://blog.labix.org/2014/09/22/announcing-yaml-v2-for-go for more information. |
Line 80: | Line 11: |
--- m: map[a:Easy! b:map[c:2 d:[3 4]]] |
== Package == |
Line 83: | Line 13: |
--- 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 == Using goinstall doesn't yet work in this case because goyaml depends on cgo, so for now we'll simply go ahead and build it manually. First, grab the code from Launchpad: {{{ $ bzr branch lp:goyaml }}} Then, build and install it: {{{ $ make install }}} == Running tests == To run tests, first install [[http://labix.org/gocheck|gocheck]] with: {{{ $ goinstall launchpad.net/gocheck }}} Then run gotest as usual: {{{ $ gotest }}} == License == goyaml is licensed under the LGPL. == Contact == This project is being developed under the [[https://launchpad.net/ensemble|Ensemble]] project at [[http://www.canonical.com|Canonical]]. To get in touch, send a message to the Ensemble mailing list at: <ensemble@lists.ubuntu.com> |
As of December 2014, the golang-goyaml-dev (0.0~bzr50-1) in Debian/Ubuntu repositories was packaged in January 2014 and corresponds to an older version maintained in a bzr repository on Launchpad. |
Details about the Go yaml package were moved from to http://launchpad.net/goyaml the GitHub project page:
The import path for the package was, in March 2014, "gonuts.org/v1/yaml", but has since been moved to "gopkg.in/yaml.v1".
A newer "gopkg.in/yaml.v2" is now also available with an expanded API. See http://blog.labix.org/2014/09/22/announcing-yaml-v2-for-go for more information.
Package
As of December 2014, the golang-goyaml-dev (0.0~bzr50-1) in Debian/Ubuntu repositories was packaged in January 2014 and corresponds to an older version maintained in a bzr repository on Launchpad.
goyaml (last edited 2014-12-09 23:25:57 by foka)