Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
codes/ | H | 19-Mar-2020 | - | 91 | 70 | |
.golangci.yml | H A D | 19-Mar-2020 | 164 | 13 | 12 | |
.travis.yml | H A D | 19-Mar-2020 | 338 | 22 | 16 | |
CHANGELOG.md | H A D | 19-Mar-2020 | 1.2 KiB | 25 | 17 | |
LICENSE | H A D | 19-Mar-2020 | 1.3 KiB | 26 | 22 | |
Makefile | H A D | 19-Mar-2020 | 152 | 7 | 6 | |
README.md | H A D | 19-Mar-2020 | 3 KiB | 73 | 55 | |
appengine.go | H A D | 19-Mar-2020 | 1.3 KiB | 65 | 53 | |
bench_test.go | H A D | 19-Mar-2020 | 6.8 KiB | 376 | 314 | |
decode.go | H A D | 19-Mar-2020 | 12.5 KiB | 618 | 511 | |
decode_map.go | H A D | 19-Mar-2020 | 6.3 KiB | 345 | 289 | |
decode_number.go | H A D | 19-Mar-2020 | 5.8 KiB | 308 | 269 | |
decode_query.go | H A D | 19-Mar-2020 | 2.6 KiB | 159 | 132 | |
decode_slice.go | H A D | 19-Mar-2020 | 3.4 KiB | 192 | 160 | |
decode_string.go | H A D | 19-Mar-2020 | 3 KiB | 187 | 158 | |
decode_value.go | H A D | 19-Mar-2020 | 6.1 KiB | 283 | 241 | |
encode.go | H A D | 19-Mar-2020 | 4.4 KiB | 241 | 183 | |
encode_map.go | H A D | 19-Mar-2020 | 3.2 KiB | 173 | 143 | |
encode_number.go | H A D | 19-Mar-2020 | 6 KiB | 245 | 192 | |
encode_slice.go | H A D | 19-Mar-2020 | 2.6 KiB | 132 | 113 | |
encode_value.go | H A D | 19-Mar-2020 | 5.1 KiB | 217 | 185 | |
example_CustomEncoder_test.go | H A D | 19-Mar-2020 | 728 | 39 | 29 | |
example_registerExt_test.go | H A D | 19-Mar-2020 | 1.3 KiB | 63 | 48 | |
example_test.go | H A D | 19-Mar-2020 | 3.5 KiB | 198 | 154 | |
ext.go | H A D | 19-Mar-2020 | 4.7 KiB | 245 | 203 | |
ext_test.go | H A D | 19-Mar-2020 | 4.3 KiB | 236 | 193 | |
go.mod | H A D | 19-Mar-2020 | 382 | 14 | 11 | |
go.sum | H A D | 19-Mar-2020 | 2.1 KiB | 25 | 24 | |
intern.go | H A D | 19-Mar-2020 | 4.6 KiB | 237 | 199 | |
msgpack.go | H A D | 19-Mar-2020 | 274 | 18 | 13 | |
msgpack_test.go | H A D | 19-Mar-2020 | 5.8 KiB | 275 | 223 | |
safe.go | H A D | 19-Mar-2020 | 251 | 14 | 7 | |
time.go | H A D | 19-Mar-2020 | 2.9 KiB | 156 | 125 | |
types.go | H A D | 19-Mar-2020 | 7.9 KiB | 383 | 313 | |
types_test.go | H A D | 19-Mar-2020 | 25.3 KiB | 1,103 | 933 | |
unsafe.go | H A D | 19-Mar-2020 | 390 | 23 | 15 |
README.md
1# MessagePack encoding for Golang 2 3[![Build Status](https://travis-ci.org/vmihailenco/msgpack.svg?branch=v2)](https://travis-ci.org/vmihailenco/msgpack) 4[![GoDoc](https://godoc.org/github.com/vmihailenco/msgpack?status.svg)](https://godoc.org/github.com/vmihailenco/msgpack) 5 6Supports: 7- Primitives, arrays, maps, structs, time.Time and interface{}. 8- Appengine *datastore.Key and datastore.Cursor. 9- [CustomEncoder](https://godoc.org/github.com/vmihailenco/msgpack#example-CustomEncoder)/CustomDecoder interfaces for custom encoding. 10- [Extensions](https://godoc.org/github.com/vmihailenco/msgpack#example-RegisterExt) to encode type information. 11- Renaming fields via `msgpack:"my_field_name"` and alias via `msgpack:"alias:another_name"`. 12- Omitting individual empty fields via `msgpack:",omitempty"` tag or all [empty fields in a struct](https://godoc.org/github.com/vmihailenco/msgpack#example-Marshal--OmitEmpty). 13- [Map keys sorting](https://godoc.org/github.com/vmihailenco/msgpack#Encoder.SortMapKeys). 14- Encoding/decoding all [structs as arrays](https://godoc.org/github.com/vmihailenco/msgpack#Encoder.UseArrayForStructs) or [individual structs](https://godoc.org/github.com/vmihailenco/msgpack#example-Marshal--AsArray). 15- [Encoder.UseJSONTag](https://godoc.org/github.com/vmihailenco/msgpack#Encoder.UseJSONTag) with [Decoder.UseJSONTag](https://godoc.org/github.com/vmihailenco/msgpack#Decoder.UseJSONTag) can turn msgpack into drop-in replacement for JSON. 16- Simple but very fast and efficient [queries](https://godoc.org/github.com/vmihailenco/msgpack#example-Decoder-Query). 17 18API docs: https://godoc.org/github.com/vmihailenco/msgpack. 19Examples: https://godoc.org/github.com/vmihailenco/msgpack#pkg-examples. 20 21## Installation 22 23This project uses [Go Modules](https://github.com/golang/go/wiki/Modules) and semantic import versioning since v4: 24 25``` shell 26go mod init github.com/my/repo 27go get github.com/vmihailenco/msgpack/v4 28``` 29 30## Quickstart 31 32``` go 33import "github.com/vmihailenco/msgpack/v4" 34 35func ExampleMarshal() { 36 type Item struct { 37 Foo string 38 } 39 40 b, err := msgpack.Marshal(&Item{Foo: "bar"}) 41 if err != nil { 42 panic(err) 43 } 44 45 var item Item 46 err = msgpack.Unmarshal(b, &item) 47 if err != nil { 48 panic(err) 49 } 50 fmt.Println(item.Foo) 51 // Output: bar 52} 53``` 54 55## Benchmark 56 57``` 58BenchmarkStructVmihailencoMsgpack-4 200000 12814 ns/op 2128 B/op 26 allocs/op 59BenchmarkStructUgorjiGoMsgpack-4 100000 17678 ns/op 3616 B/op 70 allocs/op 60BenchmarkStructUgorjiGoCodec-4 100000 19053 ns/op 7346 B/op 23 allocs/op 61BenchmarkStructJSON-4 20000 69438 ns/op 7864 B/op 26 allocs/op 62BenchmarkStructGOB-4 10000 104331 ns/op 14664 B/op 278 allocs/op 63``` 64 65## Howto 66 67Please go through [examples](https://godoc.org/github.com/vmihailenco/msgpack#pkg-examples) to get an idea how to use this package. 68 69## See also 70 71- [Golang PostgreSQL ORM](https://github.com/go-pg/pg) 72- [Golang message task queue](https://github.com/vmihailenco/taskq) 73