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两个文件

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值