信创整体解决方案助推企业数字化转型与智能化发展
1474
2022-09-16
Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略
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来写或者读消息
官方文档:--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
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~