open-nomad/vendor/github.com/vmihailenco/msgpack
Seth Hoenig 435c0d9fc8 deps: Switch to Go modules for dependency management
This PR switches the Nomad repository from using govendor to Go modules
for managing dependencies. Aspects of the Nomad workflow remain pretty
much the same. The usual Makefile targets should continue to work as
they always did. The API submodule simply defers to the parent Nomad
version on the repository, keeping the semantics of API versioning that
currently exists.
2020-06-02 14:30:36 -05:00
..
codes Initial go-plugin 2018-08-12 15:58:39 -07:00
.travis.yml deps: Switch to Go modules for dependency management 2020-06-02 14:30:36 -05:00
appengine.go deps: Switch to Go modules for dependency management 2020-06-02 14:30:36 -05:00
CHANGELOG.md Initial go-plugin 2018-08-12 15:58:39 -07:00
decode.go Initial go-plugin 2018-08-12 15:58:39 -07:00
decode_map.go Initial go-plugin 2018-08-12 15:58:39 -07:00
decode_number.go Initial go-plugin 2018-08-12 15:58:39 -07:00
decode_query.go Initial go-plugin 2018-08-12 15:58:39 -07:00
decode_slice.go Initial go-plugin 2018-08-12 15:58:39 -07:00
decode_string.go Initial go-plugin 2018-08-12 15:58:39 -07:00
decode_value.go Initial go-plugin 2018-08-12 15:58:39 -07:00
encode.go Initial go-plugin 2018-08-12 15:58:39 -07:00
encode_map.go Initial go-plugin 2018-08-12 15:58:39 -07:00
encode_number.go Initial go-plugin 2018-08-12 15:58:39 -07:00
encode_slice.go Initial go-plugin 2018-08-12 15:58:39 -07:00
encode_value.go Initial go-plugin 2018-08-12 15:58:39 -07:00
ext.go Initial go-plugin 2018-08-12 15:58:39 -07:00
LICENSE Initial go-plugin 2018-08-12 15:58:39 -07:00
Makefile Initial go-plugin 2018-08-12 15:58:39 -07:00
msgpack.go Initial go-plugin 2018-08-12 15:58:39 -07:00
README.md Initial go-plugin 2018-08-12 15:58:39 -07:00
tag.go Initial go-plugin 2018-08-12 15:58:39 -07:00
time.go Initial go-plugin 2018-08-12 15:58:39 -07:00
types.go Initial go-plugin 2018-08-12 15:58:39 -07:00

MessagePack encoding for Golang

Build Status GoDoc

Supports:

API docs: https://godoc.org/github.com/vmihailenco/msgpack. Examples: https://godoc.org/github.com/vmihailenco/msgpack#pkg-examples.

Installation

Install:

go get -u github.com/vmihailenco/msgpack

Quickstart

func ExampleMarshal() {
	type Item struct {
		Foo string
	}

	b, err := msgpack.Marshal(&Item{Foo: "bar"})
	if err != nil {
		panic(err)
	}

	var item Item
	err = msgpack.Unmarshal(b, &item)
	if err != nil {
		panic(err)
	}
	fmt.Println(item.Foo)
	// Output: bar
}

Benchmark

BenchmarkStructVmihailencoMsgpack-4   	  200000	     12814 ns/op	    2128 B/op	      26 allocs/op
BenchmarkStructUgorjiGoMsgpack-4      	  100000	     17678 ns/op	    3616 B/op	      70 allocs/op
BenchmarkStructUgorjiGoCodec-4        	  100000	     19053 ns/op	    7346 B/op	      23 allocs/op
BenchmarkStructJSON-4                 	   20000	     69438 ns/op	    7864 B/op	      26 allocs/op
BenchmarkStructGOB-4                  	   10000	    104331 ns/op	   14664 B/op	     278 allocs/op

Howto

Please go through examples to get an idea how to use this package.

See also