Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略

举报
一个处女座的程序猿 发表于 2021/03/29 00:10:03 2021/03/29
【摘要】 Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略       目录 protobuf的简介 protobuf的安装 protobuf的使用方法     protobuf的简介      Protocol buffers是用于序列化结构化数据的灵活、高效、自动化的机制——比如XML,但是更小、更快、更简单。您只需...

Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略

 

 

 

目录

protobuf的简介

protobuf的安装

protobuf的使用方法


 

 

protobuf的简介

     Protocol buffers是用于序列化结构化数据的灵活、高效、自动化的机制——比如XML,但是更小、更快、更简单。您只需定义一下希望如何对数据进行结构化,然后就可以使用特殊生成的源代码来轻松地编写和读取到各种数据流中的结构化数据,并使用各种语言。你甚至可以更新你的数据结构,而不必破坏那些被编译为“旧”格式的程序。   
    Google protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。protobuf也叫protocol buffer是google 的一种数据交换的格式,它独立于语言,独立于平台。Google protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++、C#、Go等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。
     Google 提供了多种语言的实现:Java、c#、c++、Go 和 Python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 、json进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

1、.proto文件是protobuf一个重要的文件,它定义了需要序列化数据的结构。使用protobuf的3个步骤是:
第一步,在.proto文件中定义消息格式
第二步,用protobuf编译器编译.proto文件
第三步,用C++/Java等对应的protobuf API来写或者读消息

官方文档:https://developers.google.com/protocol-buffers/docs/overview

 

protobuf的安装

protoc的源码和各个系统的预编译包:https://github.com/protocolbuffers/protobuf/releases
1、选择对应的安装文件下载

2、添加到环境变量中

安装完成!

 

protobuf的使用方法

1、基本用法

protoc --version #查看protoc的版本
 

2、代码转换显例

切换到要使用的proto文件路径下,并打开cmd窗口执行以下命令

protoc -I=源地址 --java_out=目标地址  源地址/xxx.proto
 

       此处生成时会以 proto 里面注明的java_package为路径完整生成,所以目标地址不必包含java_package及之后的路径,比如:option java_package = "com.test.protocol";,那么就会生成com/test/protocol/XXX.java
参数说明

  • -I:主要用于指定待编译的 .proto 消息定义文件所在的目录,即可能出现的包含文件的路径,该选项可以被同时指定多个。此处指定的路径不能为空,如果是当前目录,直接使用.,如果是子目录,直接使用子目录相对径,如:foo/bar/baz,如果要编译的文件指定的文件路径为baz/test.proto,那么应这么写-I=foo/bar,而不要一直写到baz。

比如执行命令:

protoc -I=. --java_out=../../../../ beans/*.proto apis/*.proto *.proto
 

 

 

 

文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:yunyaniu.blog.csdn.net/article/details/82882206

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。