Protocol Buffers安装与解析

Protocol Buffers 简介

  • Protocol Buffers(一下简称PB) 是由Google开发的,与语言无关,与平台无关。用于对结构化数据进行序列化(例如XML),但更小,更快,更简单。使用一次构造数据的方式,然后可以使用生成的特殊源代码轻松地使用各种语言在各种数据流中写入和读取结构化数据。
    PB支持的语言有:Java, Python, Objective-C, C++,Dart, Go, Ruby, and C#
    官方网站:

https://developers.google.com/protocol-buffers/docs/overview

下载安装Protocol Buffers 编译器

  • 通过

https://github.com/protocolbuffers/protobuf/releases

下载好releases版本,根据自己电脑系统下载protoc-linux/win/osx.**

  • 下载好后进行解压,然后找到bin目录下的protoc

  • 执行:

chmod a+x protoc
  • 在bin目录下就可以执行 ./protoc –help查看使用帮助

编译proto文件

  • 执行 ./protoc 会看到 以下截图,代表编译后输出的文件语言。

  • 编译命令以java为例:

./protoc --proto_path=(proto\******文件所在的路径)  --java_out=(导出java文件路径) message.proto(要编译的proto文件名)

执行完上命令后,会在导出文件路径下产生一个.java文件.

如果要导出别的语言只需要更改 --java_out 表示就可以了。

示例(java)

  • 有如下message.proto 定义文件
syntax = "proto2"; //指定proto句法版本
 option java_package = "protobuf";//指定java包名
 option java_outer_classname = "MessageProto";//指定java名
 
 message Message {
   optional int32 version = 1; // message protocol version (required)
   optional string id = 2; // message id (will be set by server)
   optional int64 publish_ts = 3; // message publish time (will be set by server time)
   optional int64 ttl = 4; // message expiration (required, in second)
 }

 
  • 将message.proto 保存在/home/pb下,现将该文件编程到/home/java下命令如下:
./protoc --proto_path=/home/pb/ --java_out=/home/java/ /home/pb/message.proto

这样就可以得到了MessageProto.java 文件就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
来源:https://github.com/google/protobuf/releases protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现,如:java、c#、c++、javascript、go 、python、ruby和php等,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。 本资源包含: protobuf-all-3.6.0.tar.gz 8.25 MB protobuf-all-3.6.0.zip 4.25 MB protobuf-cpp-3.6.0.tar.gz 5.18 MB protobuf-cpp-3.6.0.zip 4.57 MB protobuf-csharp-3.6.0.tar.gz 5.66 MB protobuf-csharp-3.6.0.zip 4.7 MB protobuf-java-3.6.0.tar.gz 5.86 MB protobuf-java-3.6.0.zip 4.4 MB protobuf-js-3.6.0.tar.gz 5.43 MB protobuf-js-3.6.0.zip 4.59 MB protobuf-objectivec-3.6.0.tar.gz 5.69 MB protobuf-objectivec-3.6.0.zip 4.6 MB protobuf-php-3.6.0.tar.gz 5.64 MB protobuf-php-3.6.0.zip 4.53 MB protobuf-python-3.6.0.tar.gz 5.57 MB protobuf-python-3.6.0.zip 4.52 MB protobuf-ruby-3.6.0.tar.gz 5.5 MB protobuf-ruby-3.6.0.zip 1.46 MB protoc-3.6.0-linux-aarch_64.zip 1.31 MB protoc-3.6.0-linux-x86_32.zip 1.36 MB protoc-3.6.0-linux-x86_64.zip 2.44 MB protoc-3.6.0-osx-x86_32.zip 2.39 MB protoc-3.6.0-osx-x86_64.zip 984 KB protoc-3.6.0-win32.zip Source code (zip) Source code (tar.gz)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值