golang protobuf

谁借莪1个温暖的怀抱¢ 2022-12-13 14:28 193阅读 0赞

1.安装protoc

  • 安装完后把bin下放入环境变量中
  • https://github.com/protocolbuffers/protobuf/releases
  • protoc —version (查看当前版本)

2.安装protoc-gen-go

  • go get -u github.com/golang/protobuf/protoc-gen-go (cmd输入)
  • $GOPATH/bin (会自动存入这个目录,把这个目录也加入环境变量)

3.创建proto文件

  1. package goprotobuf;
  2. message HelloWorld
  3. {
  4. required int32 id = 1; // ID
  5. required string str = 2; // str
  6. optional int32 opt = 3; //optional field
  7. }

同级目录下 cmd ,protoc —go_out=. *.proto (或者protoc —go_out=. test.proto)

会生成go文件

4.开始编解码

  1. package main
  2. import (
  3. "fmt"
  4. proto "github.com/golang/protobuf/proto"
  5. goprotobuf "hou/src/study/pb"
  6. )
  7. func main() {
  8. msg := &goprotobuf.HelloWorld{
  9. Id: proto.Int32(996),
  10. Str: proto.String("fuck"),
  11. }
  12. //编码
  13. buffer, err := proto.Marshal(msg)
  14. if err != nil {
  15. return
  16. }
  17. //解码
  18. msgEnd := &goprotobuf.HelloWorld{}
  19. err = proto.Unmarshal(buffer, msgEnd)
  20. if err != nil {
  21. return
  22. }
  23. fmt.Println("解码", msgEnd)
  24. }

发表评论

表情:
评论列表 (有 0 条评论,193人围观)

还没有评论,来说两句吧...

相关阅读

    相关 golang使用protobuf简易教程

    golang使用protobuf简易教程 google公司发布的一套开源编码规则,基于二进制流的序列化传输,可以转换成多种编程语言,几乎涵盖了市面上所有的主流编程语言,当