63 lines
1.9 KiB
Markdown
63 lines
1.9 KiB
Markdown
# MessagePack for Golang
|
|
|
|
[](https://pkg.go.dev/github.com/shamaton/msgpack)
|
|

|
|
[](https://goreportcard.com/report/github.com/shamaton/msgpack)
|
|
[](https://codecov.io/gh/shamaton/msgpack)
|
|
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fshamaton%2Fmsgpack?ref=badge_shield)
|
|
|
|
## 📣 Notice
|
|
If your application serializes only primitive types, array, map and struct, code generation is also recommended.
|
|
You can get the fastest performance with [msgpackgen](https://github.com/shamaton/msgpackgen).
|
|
|
|
## Features
|
|
* Supported types : primitive / array / slice / struct / map / interface{} and time.Time
|
|
* Renaming fields via `msgpack:"field_name"`
|
|
* Omitting fields via `msgpack:"-"`
|
|
* Supports extend encoder / decoder
|
|
* Can also Encoding / Decoding struct as array
|
|
|
|
This package requires more than version **1.13**
|
|
|
|
## Installation
|
|
|
|
Current version is **msgpack/v2**.
|
|
```sh
|
|
go get -u github.com/shamaton/msgpack/v2
|
|
```
|
|
|
|
## Quick Start
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"github.com/shamaton/msgpack/v2"
|
|
)
|
|
|
|
func main() {
|
|
type Struct struct {
|
|
String string
|
|
}
|
|
v := Struct{String: "msgpack"}
|
|
|
|
d, err := msgpack.Marshal(v)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
r := Struct{}
|
|
err = msgpack.Unmarshal(d, &r)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
```
|
|
|
|
## Benchmark
|
|
This result made from [shamaton/msgpack_bench](https://github.com/shamaton/msgpack_bench)
|
|
|
|

|
|
|
|
## License
|
|
|
|
This library is under the MIT License.
|