首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go : 常用库MsgPack的简介与实践

Go : 常用库MsgPack的简介与实践

作者头像
Freedom123
发布于 2024-03-29 14:01:24
发布于 2024-03-29 14:01:24
1.3K0
举报
文章被收录于专栏:DevOpsDevOps

简介

官网: https://msgpack.org/ MessagePack是一种有效的二进制序列化格式。它使您可以在JSON等多种语言中交换数据。但是它更快,更小。小整数被编码为单个字节,典型的短字符串除了本身之外,仅需要一个额外的字节。msgpack会将数据打包成二进制的数据,它的数据格式与json类似,但是在存储时对数字、多字节字符、数组等都做了很多优化,减少了无用的字符,二进制格式,也保证不用字符化带来额外的存储空间的增加,所以在很大程度上减少来传输数据的大小。

特性:

  • 高效 msgpack 是用于encoding/json包的置换式替代品,最多可快5倍。
  • 可定制 使用自定义编码器和解码器自定义用户定义和 stdlib 类型的序列化。
  • 可扩展 通过使用 ext 为您的类型提供类型感知的编码来扩展MessagePack。

实践

代码语言:javascript
复制
import "github.com/vmihailenco/msgpack/v5"

type Item struct {
    Foo string
}

func main() {
    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
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 简介
  • 实践
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档