Protocol Buffers


是一种序列化数据结构的方法。对于通过导线或存储数据进行通信的程序开发上是很有用的。这个方法包含一个接口描述语言,描述一些数据结构,并且提供程序工具根据这些描述产生代码,用于将这些数据结构产生或解析数据流。

语言支持[编辑]


proto2提供一个代码产生器,支持C++、Java和Python。
第三方实现支持JavaScript。
proto3提供一个代码产生器,支持C++、Java (包含JavaNano)、Python、Go、Ruby、Objective-C和C#.[3]从 3.0.0 Beta 2 版开始支持JavaScript。
第三方实现支持Perl、PHP、Scala和Julia.

Protocal buffer 安装

ubuntu 下的安装

下载 https://github.com/google/protobuf/releases/tag/v3.2.0 你需要的压缩包。

分别执行:

 #tar zxvf protobuf-xx.tar.gz  make make checksudo make installexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libsource ~/.profile  

检查是否安装成功:

protoc --version

若果提示结果为:

libprotoc 3.2.0

说明安装成功了。

windows 下protoc的安装

如果proto2不是用在C++上,那么下载protoc-3.2.0-win32.zip就好了,解压后会有两个文件夹:

bin
include

文件夹bin里面有个protoc.exe的可执行文件。用这个可执行文件就可以满足除C++以外的需求。比如想在java上用protoc则:
1、用记事本写一个符合protoc规则的.proto文件(修改扩张名即可)。如果在D:\code\protocal2有个xx.proto的文件,那么运行下面的指令:

C:\Users\andy.lv>D:\code\protocal2\bin\protoc.exe     -I=D:\code\protocal2   --java_out=D:\code\protocal2\java D:\code\protocal2\xx.proto

-I 指定的是源文件夹 。 –java_out指的是编译成.java文件,赋值是指编译好的java存放的文件夹。最后是指定.proto文件。
执行成功以后就会在D:\code\protocal2\java下面找到按照proto语法格式编译生成的.java文件。

编写代码

google的protocal buffers(proto2)之(一)相关推荐

  1. protocal buffers 官方文档学习

    protocal buffers 官方文档学习 文章目录 protocal buffers 官方文档学习 1.What are protocol buffers? 2.选择你喜欢的语言 3.怎么开始, ...

  2. 数据序列化与传输 Protocal Buffers 与flatbuffer选型对比

    1.flatbuffers简介 2.flatbuffers VS JSON 3.flatbuffers 使用 1.flatbuffers简介 flatbuffer是google的一个跨平台串行化库,开 ...

  3. Protocal Buffers

    Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化.反序列化,常用于RPC 系统(Remote Procedure Call Protocol Syste ...

  4. Google protocal Buffers Python API简单使用

    一 简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,1 ...

  5. 区块链时代的拜占庭容错:Tendermint(四)

    2019独角兽企业重金招聘Python工程师标准>>> 原文题目:<Tendermint: Byzantine Fault Tolerance in the Age of Bl ...

  6. 缓冲区溢出_在Java中使用Google的协议缓冲区

    缓冲区溢出 最近发布了有效的Java第三版,我一直对确定此类Java开发书籍的更新感兴趣,该书籍的最新版本仅通过Java 6进行了介绍. 在此版本中,显然存在与Java 7 , Java 8和Java ...

  7. Google、亚马逊、微软 、阿里巴巴开源软件一览

    Google.亚马逊.微软 .阿里巴巴开源软件一览 大公司为什么要发布开源项目?一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼工程师写出更好的代码.三是开 ...

  8. java使用缓冲区读取文件_在Java中使用Google的协议缓冲区

    java使用缓冲区读取文件 最近发布了 有效的Java第三版 ,我一直对确定此类Java开发书籍的更新感兴趣,该书籍的最新版本仅通过Java 6进行了介绍 . 在此版本中,显然存在与Java 7 , ...

  9. 在Java中使用Google的协议缓冲区

    最近发布了 有效的Java第三版 ,我一直对确定此类Java开发书籍的更新感兴趣,该书籍的最新版本仅通过Java 6进行了介绍 . 在此版本中,显然有与Java 7 , Java 8和Java 9密切 ...

最新文章

  1. c:redirect标签的使用
  2. MPB:沈阳生态所李琪组-​土壤线虫群落DNA提取、扩增及高通量测序
  3. Android系统开发和性能优化——查漏补缺【建议收藏】
  4. ultraiso制作xubuntu启动盘
  5. Mysql插入很慢,找到了稍微快点的方法
  6. [BZOJ2879] [Noi2012] 美食节 (费用流 动态加边)
  7. python ssl模块_转 Python3 ssl模块不可用的问题
  8. Linux添加rose不能交互式登录,常见问题及注意事项 - Linux下环境安装配置Rose HA全攻略(图)_数据库技术_Linux公社-Linux系统门户网站...
  9. 别再杀他们祭天了!1024程序员日那些不得不吐槽的点
  10. 【物联网控制技术复习】【复数的概念】【拉普拉斯变换】
  11. 奇迹1.03H服务端开服架设文件Data文件详解
  12. 洛谷 P1878 舞蹈课(优先队列 + 双链表)
  13. 零基础学大数据难吗?
  14. Intellij IDEA摸鱼插件 看电子书 AndroidStudio 摸鱼插件 摸鱼神器 IdeaTxt
  15. 武田收到CHMP肯定意见,推荐ALUNBRIG(R) (brigatinib)用于治疗既往用过克唑替尼的ALK+非小细胞肺癌患者
  16. C语言简单的双人小游戏
  17. python操作Excel的5种常用方式
  18. Python numpy实现二维数组和一维数组拼接
  19. 彼岸花开,忧伤了谁的等待?诗意伤感日志
  20. PrintSpool 服务经常自动停止!

热门文章

  1. Python---变量作用域与闭包
  2. ESP32E基于Thonny——python框架,PC端进行局域网控制led亮灭
  3. python解释器安装,pycharm安装
  4. 触动你内心的走心情感语录,看要心情释然!
  5. 【Unity3D】固定管线着色器二
  6. office2010 反应慢_office2010打开文档时反应慢
  7. c语言堆栈基本代码入栈出栈_顺序栈基本操作(入栈和出栈)C语言详解
  8. 19c RAC Duplicate方式静默安装ADG从库
  9. Unity鼠标控制摄像机拖拽、旋转、缩放(模拟编辑器摄像机功能)
  10. 【架构】软件代码的耦合性和内聚性,以几个简单小例子说明