protobuf简单介绍

protobuf是谷歌的开源序列化协议框架,结构类似于XML,JSON这种,显著的特点是二进制的,效率高,主要用于通信协议和数据存储等方面,算是一种结构化数据的表示方法。

protobuf的优点

大家都在用,起码‘装逼'的都在用【咱要跟上时代】

别人说性能好,二进制格式【大项目不用这个,感觉丢人】

跨平台支持各种语言,前后兼容好强大【毕竟人家谷歌在用了】

protobuf的缺点

二进制格式,一般人看不了

缺乏自我描述

xml是自我描述的,但是protobuf格式不是的,给你一段二进制文件,你看不出来作用

protobuf使用步骤

定义自己的数据结构格式(.pro)源文件

利用protobuf提供的编译器编译源文件

利用protobuf go的api读写信息

比如定义一个结构化数据person,包含name和email属性

xml中这样定义

zhangsan

zhangsan@qq.com

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】

安装命令行如下:

$ 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环境下安装教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

linux加protobuf变量环境,protobuf简单介绍和ubuntu 16.04环境下安装教程相关推荐

  1. linux上pyenv卸载,在Ubuntu 18.04系统下安装pyenv的方法

    本文介绍在Ubuntu 18.04操作系统下安装pyenv的方法,使用它可以进行Python多版本管理,目的是防止不同的Python版本因为不兼容而出现错误.安装pyenv其实非常的简单,只需要在系统 ...

  2. 判断Linux环境是否装了NCCL,Ubuntu 16.04安装NCCL 2

    NCCL是Nvidia Collective multi-GPU Communication Library的简称,它是一个实现多GPU的collective communication通信(all- ...

  3. linux的lnmp环境,Ubuntu 16.04 LTS下LNMP环境配置简述

    Ubuntu 16.04 LTS下LNMP环境配置简述 1.安装mysql sudo aptinstall mysql-server 安装过程会提示密码 2.安装nginx和php #添加nginx和 ...

  4. ubuntu 16.04 环境下 vscode的 c++配置文件

    ubuntu 16.04 环境下 vscode的 c++配置 1.首先安装需要的插件 CodeRunner C/C++ 2.在工程根目录下创建.vscode文件夹,里面新建三个json配置文件 各配置 ...

  5. 在linux搭建wiki教程,在Ubuntu 16.04系统上安装WikkaWiki

    一.WikkaWiki介绍 WikkaWiki是一个灵活的.兼容标准的.轻量级的.平台独立的开源Wiki引擎,它使用PHP语言开发,后端存储采用了MySQL数据库.WikkaWiki的设计目标是速度快 ...

  6. 阿里云ECS服务器环境搭建(2) —— ubuntu 16.04 安装中文输入法(搜狗输入法)

    阿里云ECS服务器环境搭建(2) -- ubuntu 16.04 安装中文输入法(搜狗输入法) 1. 环境 阿里云 ECS服务器 (4核 8G 4M) Ubuntu16.04-64-bit 图形界面 ...

  7. Linux Ubuntu 16.04 Python matplotlib安装中文字体,黑体,楷体,Times New Roman等,解决中文乱码

    Linux Ubuntu 16.04 Python matplotlib安装中文字体,Times New Roman等 文章目录 Linux Ubuntu 16.04 Python matplotli ...

  8. 一、PX4环境搭建和编译(Ubuntu 16.04、ROS kinetic)

    Ubuntu16.04 ROS:kinetic 源于:官网PX4开发指南(v1.10.0)<master> https://dev.px4.io/v1.10/zh/ 稍微参考一下这个网站: ...

  9. 在Ubuntu 16.04环境下安装Docker-CE(附视频教程)

    " 任何的课程都逃不开理论的支持" 久等了各位,上一篇说Docker开始的消息已经过去了一周多的时间,今天推送的消息是告诉大家视频可以学习了! 52ABP .NET CORE QQ ...

最新文章

  1. kali如何制作php字典_Kali Linux安装搜狗输入法
  2. 一个显示页码用的helper。。。
  3. Android 自定义字体,设置字体
  4. 学校计算机 电教材料账册,电教室管理制度
  5. Java读取文件中的arraylist_java – 从文件中读取ArrayList作为对象?
  6. linux系统装好后优化,CentOS 5.6 Linux安装系统后的基本优化
  7. Adhesive框架系列文章--报警服务使用实践
  8. 元器件选型实例(如何选一款合适的 DC-DC )
  9. 微信开发之小程序UI设计规范
  10. 档案管理学 | 档案实体管理概论
  11. php nginx 伪静态规则,常见PHP程序的Nginx 伪静态规则
  12. nodejs 视频教程《一起学nodejs》
  13. layim之整合右键菜单
  14. linux下hg命令
  15. DRM系列(10)之drm_read
  16. 软考成绩没有等来,等来了“广州引进人才入户管理新规”
  17. 首次「机器学习」挑战赛下周开始,内含知识点剧透
  18. MySql 练习- 留存率计算
  19. 那些跳槽做程序员的人,后悔了吗?
  20. 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇9、动态影像服务发布

热门文章

  1. Python:监控键盘输入、鼠标操作,并将捕获到的信息记录到文件中
  2. 阿里ai布局开始_如何开始使用AI
  3. Django Python Web应用程序框架简介
  4. 用开源代码如何建立网站_在开源上建立自举业务
  5. (21)npm scripts 实现自动化构建的最简方式
  6. java编程方向_java网络编程方向具体该怎么去学
  7. d3 和echart_D3.js与echart.js的应用场景
  8. php限制只能中文,php如何实现一个账号只能有一个人登录
  9. java数组比较的头文件_Java和C++的数组比较
  10. 人工智能写小说python_1月下旬值得一读的10本技术新书(人工智能、C++、Python数据科学等)!文末有福利!...