概述
golang使用protobuf简易教程
google公司发布的一套开源编码规则,基于二进制流的序列化传输,可以转换成多种编程语言,几乎涵盖了市面上所有的主流编程语言,当然也包括Go
1、安装protobuf
- 安装下载protoc,很多种安装方法,下载地址
https://github.com/google/protobuf/releases
- 安装下载proto的go插件,命令是
go get github.com/golang/protobuf/protoc-gen-go
,也可以自己手动下载安装(如果使用go get则会自动生成protoc-gen-go的可执行文件) - 将protoc-gen-go可执行文件路径加到PATH环境变量中,如果是go get安装是会在GOBIN路径下生成protoc-gen-go,执行
export PATH=$PATH:$GOBIN
(原因在于, protoc-gen-go可执行文件需要被protoc调用) - 安装goprotobuf库(注意,protoc-gen-go只是一个插件,goprotobuf的其他功能比如marshal、unmarshal等功能还需要由protobuf库提供)
go get github.com/golang/protobuf/proto
- 写example.proto文件以及.go文件测试。由于proto生成go文件的命令是
protoc --go_out=./ example.proto
PS:
1.如果你是直接go get了gin、beego这种,一般就会顺便给你安装protobuf以及protoc-gen-go了。
2.如果你有protoc-gen-go代码,放到对应目录下后($GOPATH/src/github.com/golang/protobuf/),make install
也可以手动安装protoc-gen-go
二、使用protobuf
1.example.proto示例文件
(具体语法请自行搜索)
syntax = "proto2";
//example.proto
package example;
// LD
message LD
{
required uint32 ip = 1; // LD的IP
}
// 集群
message Set
{
required uint32 id = 1; // SET的id
required string name = 2; // SET名字
repeated LD ld_list = 3; // LD列表
}
注意required是必须要求的字段,optional是可选字段,同时注意, id=1, 后面的数字主要是保证其顺序与唯一性。
编译命令
protoc --go_out=./ example.proto
会生成文件example.pb.go
生成的代码如下:
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: example.proto
/*
Package example is a generated protocol buffer package.
It is generated from these files:
example.proto
It has these top-level messages:
LD
Set
*/
package example
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
最后
以上就是忧虑摩托为你收集整理的golang使用protobuf简易教程golang使用protobuf简易教程的全部内容,希望文章能够帮你解决golang使用protobuf简易教程golang使用protobuf简易教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复