当前位置:   article > 正文

protobuf_protobuf序列化工具的主要优点是什么

protobuf序列化工具的主要优点是什么

目录

介绍

Protobuf的优缺点

安装


介绍

protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。google protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++、C#、Go等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。

GitHub地址:https://github.com/protocolbuffers/protobuf
不同语言源码版本下载地址:
https://github.com/protocolbuffers/protobuf/releases/latest


 

Protobuf的优缺点

Protobuf的优点如下:
A、性能好,效率高
序列化后字节占用空间比XML少3-10倍,序列化的时间效率比XML快20-100倍。
B、有代码生成机制
将对结构化数据的操作封装成一个类,便于使用。
C、支持向后和向前兼容
当客户端和服务器同时使用一块协议的时候, 当客户端在协议中增加一个字节,并不会影响客户端的使用
D、支持多种编程语言
Protobuf目前已经支持Java,C++,Python、Go、Ruby等多种语言。

Protobuf的缺点如下:
A、二进制格式导致可读性差
B、缺乏自描述


安装

1. 下载:

https://github.com/protocolbuffers/protobuf/releases下载Protocol Buffers v3.8.0

2. 解压

tar -zxf protobuf-all-3.8.0.tar.gz
3. 跳转到解压后的目录

cd  protobuf-3.8.0
4. 设置编译目录

./configure --prefix=/usr/local/protobuf
/usr/local/protobuf/ 为自己配置的编译安装目录

5. 安装
还是在解压的目录下进行

make
make install
6. 配置环境变量

sudo  vim .bash_profile
7. 添加配置文件

export PROTOBUF=/usr/local/protobuf
export PATH=$PROTOBUF/bin:$PATH
PS: 如果第七步数据保存不了可以先切换到root 用户进行保存

sudo -i
8. 使配置文件生效

source .bash_profile
9. 测试安装结果
输入protoc --version
看到如下结果表示安装成功:

~ maerfeifei$ protoc --version
libprotoc 3.8.0

使用

在项目下新建hello.proto文件,文件内容写

syntax = "proto3";
package lm;

message helloworld
{
    int32 id = 1; // ID
    string str = 2; // str
    int32 opt = 3; // optional field
}

proto3如果不填默认是proto2,proto3和proto2区别请看https://solicomo.com/network-dev/protobuf-proto3-vs-proto2.html

然后执行protoc --php_out=./ hello.proto  

注意 ./后面必须有一个空格,不然会报错。

这是时候会生成

GPBMetadata/Hello.php     Lm/helloworld.php两个文件

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/430408
推荐阅读
相关标签
  

闽ICP备14008679号