ProtoBuf系列protobuf的介绍与安装
Posted 清风拂山岗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ProtoBuf系列protobuf的介绍与安装相关的知识,希望对你有一定的参考价值。
ProtoBuf系列(一)protobuf的介绍与安装
1. protobuf简介
Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
Protobuf刚开源时的定位类似于XML、JSON等数据描述语言,通过附带工具生成代码并实现将结构化数据序列化的功能。这里我们更关注的是Protobuf作为接口规范的描述语言,可以作为设计安全的跨语言RPC接口的基础
工具。
需要了解两点
- protobuf是类似与json一样的数据描述语言(数据格式)
- protobuf非常适合于RPC数据交换格式
接着我们来看一下protobuf的优势和劣势:
**优势: **
1:序列化后体积相比Json和XML很小,适合网络传输
2:支持跨平台多语言
3:消息格式升级和兼容性还不错
4:序列化反序列化速度很快,快于Json的处理速度
劣势:
1:应用不够广(相比xml和json)
2:二进制格式导致可读性差
3:缺乏自描述
2. protobuf的安装
-
下载 protobuf
方法一:===> git clone https://github.com/protocolbuffers/protobuf.git 方法二:===> 或者将准备好的压缩包进行拖入 解压到$GOPATH/src/github.com/protocolbuffers/下面 Unzip protobuf.zip
-
安装(ubuntu下)
(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)进行安装 sudo make install (6)刷新linux共享库关系 sudo ldconfig
-
测试protobuf编译工具
protoc -h
如果正常输出 相关指令 没有报任何error,为安装成功
-
安装protobuf的go语言插件
由于protobuf并没直接支持go语言需要我们手动安装相关插件
(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/ (4)尝试补齐protoc-gen-go 如果可以补齐代表成功,如果执行不报错 代表工具成功
以上是关于ProtoBuf系列protobuf的介绍与安装的主要内容,如果未能解决你的问题,请参考以下文章