目录
1.安装,先安装protobuf包,这是c语言写的,再安装go语言操作protobuf的包
一、下载protobuf
二、安装(Linux Ubuntu环境为例)
三、测试protobuf编译工具
四、获取 golang语言的proto包
2.使用:
1)在pb/文件夹下定义一个.proto文件(Person.proto)
2)将.proto文件进行编译生成对应的go文件
3)使用protobuf协议编程
与json xml一样,protobuf格式的数据,也是数据传输常用格式,基于加密效率更高,所以说protubuf是一个数据协议,此数据协议的安装和使用过程如下:
方法一:===> git clone https://github.com/protocolbuffers/protobuf.git
方法二:===> 或者将准备好的压缩包进行拖入
解压
Unzip protobuf1.zip
(1)安装依赖工具
$ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y
(2)进入protobuf文件
cd protobuf/
(3)进行安装检测 并生成自动安装脚本
./autogen.sh
./configure
(4)进行编译C代码
make
(5)进行安装 这一步的目的是把protobuf的可执行文件放到系统变量里头,也就是拷贝执行文件到/usr/bin
sudo make install
(6)刷新linux共享库关系 ldd protoc就可以看到依赖的库
sudo ldconfig
protoc -h
如果正常输出 相关指令 没有报任何error,为安装成功
(1)下载
方法一:===> go get -v -u github.com/golang/protobuf/proto
方法二:===>或者将 github.com-golang-protobuf.zip拖入 进行解压到 $GOPATH/src/github.com/golang
(2)进入到文件夹内进行编译
$ cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go/
$ go build
(3)将生成的 protoc-gen-go可执行文件,放在/bin目录下
$ sudo cp protoc-gen-go /bin/
syntax = "proto3"; //当前protobuf版本的信息,不指定版本会报错
package pb; //后期我们生成的go文件所在的包
//定义一个protobuf协议
message Person {
string name = 1;//1,2表示编码顺序
int32 age = 2;
}
方式一:标准的指令:protoc --proto_path=IMPORT_PATH --go_out=DST_DIR path/to/file.proto
即: protoc 执行路径 --go out=输出路径 源文件路径
方式二:通用的指令 :protoc --go_out=. *.proto//将当前的目录下的全部的proto文件进行编译,生成的go文件全部放在当前路径下
通过编译指令会得到一个.pb.go文件(Person.pb.go):
.pb.go是不允许编辑;如果想要修改proto传输结构体的字段:需要重新修改proto文件,再重新编译 生成一个新的.pb.go就可以了
方式三:写脚本文件 build.sh 然后执行./build.sh
#!/bin/bash 这一行表示解析器是bash
protoc --go_out=. *.proto