google的protocal buffers(proto2)之(一)
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)之(一)相关推荐
- protocal buffers 官方文档学习
protocal buffers 官方文档学习 文章目录 protocal buffers 官方文档学习 1.What are protocol buffers? 2.选择你喜欢的语言 3.怎么开始, ...
- 数据序列化与传输 Protocal Buffers 与flatbuffer选型对比
1.flatbuffers简介 2.flatbuffers VS JSON 3.flatbuffers 使用 1.flatbuffers简介 flatbuffer是google的一个跨平台串行化库,开 ...
- Protocal Buffers
Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化.反序列化,常用于RPC 系统(Remote Procedure Call Protocol Syste ...
- Google protocal Buffers Python API简单使用
一 简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,1 ...
- 区块链时代的拜占庭容错:Tendermint(四)
2019独角兽企业重金招聘Python工程师标准>>> 原文题目:<Tendermint: Byzantine Fault Tolerance in the Age of Bl ...
- 缓冲区溢出_在Java中使用Google的协议缓冲区
缓冲区溢出 最近发布了有效的Java第三版,我一直对确定此类Java开发书籍的更新感兴趣,该书籍的最新版本仅通过Java 6进行了介绍. 在此版本中,显然存在与Java 7 , Java 8和Java ...
- Google、亚马逊、微软 、阿里巴巴开源软件一览
Google.亚马逊.微软 .阿里巴巴开源软件一览 大公司为什么要发布开源项目?一是开源能够帮助他人更快地开发软件,促进世界创新,主要是社会价值层面的考虑.二是开源能够倒逼工程师写出更好的代码.三是开 ...
- java使用缓冲区读取文件_在Java中使用Google的协议缓冲区
java使用缓冲区读取文件 最近发布了 有效的Java第三版 ,我一直对确定此类Java开发书籍的更新感兴趣,该书籍的最新版本仅通过Java 6进行了介绍 . 在此版本中,显然存在与Java 7 , ...
- 在Java中使用Google的协议缓冲区
最近发布了 有效的Java第三版 ,我一直对确定此类Java开发书籍的更新感兴趣,该书籍的最新版本仅通过Java 6进行了介绍 . 在此版本中,显然有与Java 7 , Java 8和Java 9密切 ...
最新文章
- c:redirect标签的使用
- MPB:沈阳生态所李琪组-​土壤线虫群落DNA提取、扩增及高通量测序
- Android系统开发和性能优化——查漏补缺【建议收藏】
- ultraiso制作xubuntu启动盘
- Mysql插入很慢,找到了稍微快点的方法
- [BZOJ2879] [Noi2012] 美食节 (费用流 动态加边)
- python ssl模块_转 Python3 ssl模块不可用的问题
- Linux添加rose不能交互式登录,常见问题及注意事项 - Linux下环境安装配置Rose HA全攻略(图)_数据库技术_Linux公社-Linux系统门户网站...
- 别再杀他们祭天了!1024程序员日那些不得不吐槽的点
- 【物联网控制技术复习】【复数的概念】【拉普拉斯变换】
- 奇迹1.03H服务端开服架设文件Data文件详解
- 洛谷 P1878 舞蹈课(优先队列 + 双链表)
- 零基础学大数据难吗?
- Intellij IDEA摸鱼插件 看电子书 AndroidStudio 摸鱼插件 摸鱼神器 IdeaTxt
- 武田收到CHMP肯定意见,推荐ALUNBRIG(R) (brigatinib)用于治疗既往用过克唑替尼的ALK+非小细胞肺癌患者
- C语言简单的双人小游戏
- python操作Excel的5种常用方式
- Python numpy实现二维数组和一维数组拼接
- 彼岸花开,忧伤了谁的等待?诗意伤感日志
- PrintSpool 服务经常自动停止!