protobuf简单介绍和ubuntu 16.04环境下安装教程
作者:宛十八 发布时间:2023-03-21 08:30:42
protobuf简单介绍
protobuf是谷歌的开源序列化协议框架,结构类似于XML,JSON这种,显著的特点是二进制的,效率高,主要用于通信协议和数据存储等方面,算是一种结构化数据的表示方法。
protobuf的优点
大家都在用,起码‘装逼'的都在用【咱要跟上时代】
别人说性能好,二进制格式【大项目不用这个,感觉丢人】
跨平台支持各种语言,前后兼容好强大【毕竟人家谷歌在用了】
protobuf的缺点
二进制格式,一般人看不了
缺乏自我描述
xml是自我描述的,但是protobuf格式不是的,给你一段二进制文件,你看不出来作用
protobuf使用步骤
定义自己的数据结构格式(.pro)源文件
利用protobuf提供的编译器编译源文件
利用protobuf go的api读写信息
比如定义一个结构化数据person,包含name和email属性
xml中这样定义
<person>
<name>zhangsan</name>
<email>zhangsan@qq.com</email>
<person>
protobuf这样定义
person{
name:"zhangsan"
email:"zhangsan@qq.com"
}
json中这样定义
{
"person":{
"name":"zhangsan",
"email":"zhangsan@qq.com"
}
}
protobuf的语法
Message定义
一个message类型定义一个请求或相应的消息格式,可以包含多种类型
Service服务
如果需要将消息类型用在rpc上面,那就需要在.proto文件定义一个rpc服务接口,protocol buffer编译器会根据所选择的不同语言生成服务接口代码。
protobuf在ubuntu 下安装 【版本16.04】
官方地址:https://github.com/google/protobuf/blob/master/src/README.md
安装命令行如下:
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
$ git clone https://github.com/google/protobuf.git
$ cd protobuf
$ git submodule update --init --recursive
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
make之后的截图
中途编译一路顺风,没有遇到什么问题,下面查看下版本吧
$ protoc --version12
总结
以上所述是小编给大家介绍的protobuf简单介绍和ubuntu 16.04环境下安装教程,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/kdchxue/article/details/81046192
猜你喜欢
- 在上一篇博文https://www.jb51.net/article/100521.htm中未设置的openwrt无法连接外网本文增加网络设
- 代理服务器的功能是代理网络用户取得网络信息,它是网络信息的中转站。随着代理服务器的广泛使用,随之而来的是一系列的安全问题。由于没有对代理服务
- 打开: js/upload.js找到: alert(sel.text);删除该代码
- 大家好,我是杜晓帅~,做为一个后端开发,因为要学的技术比较多,而各种技术又必须要安装各种包或者配置环境,所以为了保护自己电脑的系统,不让他轻
- 新做了一个资料类的网站,因为女朋友从事的职业的关系,老是让我给她找资料,也发现了很多资料网站的问题,这里谈一下自己对资料网站的看法:1.既然
- 因为手动发文章比较多,添加tag标签的时候老是要切换输入法,非常麻烦,在网上找了下,看到的几乎都是同一个人发的文章被转载的,代码其实是错误的
- 安装首先需要安装好Java和Scala,然后下载Spark安装,确保PATH 和JAVA_HOME 已经设置,然后需要使用Scala的SBT
- 日前,因QQ互联帐号接入政策限制在新浪微博上出现了广泛的争议,多个知名社区负责人表示无法申请QQ互联接入服务,随后有消息称Discuz将推独
- GoDaddy Backorder域名抢注据说机率还是比较大的,我没搞过抢注,一个很好的米农朋友给我介绍了不少经验,呵呵,看他们的
- 如果说Ubuntu是现今最受桌面用户欢迎的Linux操作系统,那么CentOS就是最受公司、企业、IDC喜爱的Linux发行版了,得益于它极
- 在这个被Ajax技术统治的互联网时代,很多Ajax程序都会在异步读取数据的同时,显示一个正在读取或Loading的动画。今天彬Go要向大家推
- 昨天把治军送我的积木万年历拿到了办公室,放在电脑边。它每月需要调整一次,但使用简单、有趣,而且配有各种图标以提醒我的当月行程安排。在这里对治
- Cherokee 号称是目前最快的 Web 服务器软件,在性能上,甚至比 Nginx 还略胜一筹。与 Apache、Lighttp
- 你的服务器上是否存有一些不能随意公开的重要数据呢?当然有吧?而最近,偏偏服务器遭受的风险又特别大,越来越多的病毒、心怀不轨的黑客,以及那些商
- 不知不觉写程序已经做了2年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成
- rm -rf mydir /* 删除mydir目录 */cd mydir /* 进入mydir目录 */cd - /* 回上一级目录 */c
- 原创:第一次在网络上发表的内容。伪原创:对原创进行过修改的转载发表。搜索引擎对于原创判断的几个因素:1、文章在搜索引擎数据库里有没有,有没有
- 概要本文介绍了如何为“Internet 信息服务”(IIS)“简单邮件传输协议”(SMTP) 邮件中继服务器配置远程域。Windows Se
- 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的 diskcopy命令的作用。先用
- “您希望通过广告获得更多收入,但又不想向用户展示没有针对性的广告。 Google AdSense? 解决了这一问题,它可以自动投放根据网站和