浅析protobuf应用

Posted dk2557

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析protobuf应用相关的知识,希望对你有一定的参考价值。

Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化,常用于RPC 系统(Remote Procedure Call Protocol System)和持续数据存储系统。

其类似于XML生成和解析,但protobuf的效率高于XML,不过protobuf生成的是字节码,可读性比XML差,类似的还有json、Java的Serializable等。

很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

linux环境安装

1. 下载

https://github.com/google/protobuf/releases下载protobuf-all-3.5.1.tar.gz

2. 解压 tar xvf protobuf-all-3.5.1.tar.gz

3. 编译并安装

cd protobuf.3.5.1
./configure
make
make check
make install

4. 验证

protoc --version

技术分享图片

错误及解决方法 :

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared 

错误原因: 

protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib 不在Ubuntu体系默认的 LD_LIBRARY_PATH 里,所以就找不到该lib 

解决方法: 

1). 创建文件 /etc/ld.so.conf.d/libprotobuf.conf,在该文件中输入如下内容: /usr/local/lib   

2). 执行命令 sudo ldconfig 

安装完成!

 

5. 编译proto文件,生成java文件(自定义文件,有自己的格式,下文会介绍)

protoc -I=SRC_DIR --java_out=DST_DIR/SRC_DIR/addressbook.proto

使用上面的命令格式生成编译很好的Java class文件

SRC_DIR表示生成的java文件存储位置,DST_DIR/SRC_DIR/addressbook.proto,表示编译.proto文件路径

Window环境安装

1.下载protobuf

选择protoc-xxx-win32.zip下载

2、配置环境变量

将解压出来的protoc.exe放在一全英文路径下,并把其路径名放在windows环境变量下的path下。

右键计算机=》属性=》高级系统设置=》环境变量=》Path  添加,值为protoc.exe的路径

3 .验证

protoc --version

4. 编译proto文件,生成java文件(与上面的执行命令都可以)

proto.exe --java_out=./ ./proto/person.proto

前面为java文件路径,后面为proto文件路径

 
下载jar包:protobuf-java-2.5.0.jar.zip

实例应用 

 

 

以上是关于浅析protobuf应用的主要内容,如果未能解决你的问题,请参考以下文章

线程浅析

浅析 Python 模块

Go是如何实现protobuf的编解码的: 源码

浅析普通函数与构造函数

浅析XSS的几种测试方法

在 Java 和 C++ 应用程序中使用 protobuf 解析时出错