protobuf

vs2015 编译 google protobuf 3.5.1

你说的曾经没有我的故事 提交于 2020-03-09 09:23:11
下载 protobuf 3.5.1: https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.zip cmake: https://cmake.org 我用的是 https://cmake.org/files/v3.11/cmake-3.11.0-rc2-win64-x64.msi 编译 使用 VS2015开发人员命令提示 进入 protobuf 的 cmake 目录 执行命令: mkdir release & cd release cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../../../install ../.. nmake nmake install ----- mkdir debug & cd debug cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../../../install ../.. nmake nmake install 来源: https://www.cnblogs.com

zeromq protobuf例子

走远了吗. 提交于 2020-03-09 09:04:37
https://github.com/AifiHenryMa/zeromq_protocolbuffer_demo https://github.com/protocolbuffers/protobuf github protobuf 随着使用的协议而有所不同,具体如下: TCP (tcp://hostname:port): 在主机之间进行通讯 INROC (inproc://name): 在同一进程的线程之间进行通讯(线程间) IPC (ipc:///tmp/filename): 同一主机的进程之间进行通讯 PGM (pgm://interface;address:port 和 epgm://interface;address:port): 多播通讯 消息格式 ZeroMQ ?默认可以发送或接收字符串和二进制的消息类型,但它对套接字之间传送的消息格式不加限制。我们可以自由地选择消息编码,如 XML,JSON、 MessagePack…在本文中为了简单起见,我们只使用字符串 http://travlr.github.io/libzmq/classzmq_1_1ipc__connecter__t.html 英文libzmq Protobuf 全称Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。

Netty使用Google Protocol Buffer完成服务器高性能数据传输

送分小仙女□ 提交于 2020-03-09 08:43:50
一、什么是Google Protocol Buffer( protobuf官方网站 ) 下面是官网给的解释: Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data. – think XML, but smaller, faster, and simpler. 协议缓冲区是一种和语言无关、平台无关的可扩展机制,用于序列化结构化的数据。相比于xml,它更小,更快,更简单。数据缓冲区常用语通信协议和数据存储。 二、ProtoBuf的性能 序列化测试对比: Ser Time + Deser Time(ns) 下面两个网站是效率测试实验: https://code.google.com/archive/p/thrift-protobuf-compare/wikis/Benchmarking.wiki https://github.com/eishay/jvm-serializers/wiki 三、使用Intellij IDEA插件自动生成Java类 参考我的另一篇文章: Google Protocol Buffer 的使用(一) 四、Netty和protobuf整合 准备我们的proto文件 syntax = "proto3"

ProtocolBuffer 使用及 一些坑

空扰寡人 提交于 2020-03-09 08:42:56
Protocol Buffers,是 Google公司开发的一种数据描述语言,类似于 XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。 /*--> */ /*--> */ ProtocolBuffer 的优势 跨平台: ProtoBuf 支持多平台和语言, 包括C++/Java/Python 等等 序列化 &反序列号 : ProtoBuf支持直接将对象序列化成 Data, 也支持直接将 Data序列化为对象类型 消息大小 :一条消息数据,用 protobuf序列化后的大小是 json的 10分之一, xml格式的 20分之一,是二进制序列化的 10分之一 . 对于即时通信消息来说, 减小数据量的大小非常有必要 /*--> */ /*--> */ 使用地址: https://github.com/alexeyxo/protobuf-swift 1.ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )" 2.brew install automake 3.brew install libtool 4.brew install protobuf 5.git clone git@github.com:alexeyxo/protobuf-swift

Google Protocol Buffer

让人想犯罪 __ 提交于 2020-03-09 08:29:41
ProtoBuf使用步骤: 在.proto文件中指定需要序列化的消息格式; 使用protocol buffer编译器将.proto文件生成你所需语言的数据访问类; 然后就可以在自己的程序中使用这些类。 ProtoBuf相较于XML的优势: 简单 3到10倍地小 20到100倍地快 更明确 生成的数据访问类更容易供编程使用 劣势: 不适合处理标记文本(HTML) 不可读 ProtoBuf 生成的c++代码 packages .proto文件中package声明相当于C++中namespace messages message Foo {} message Foo会生成一个类Foo,该类继承自google::protobuf::Message。根据优化模式来确定是否重载Message中的虚函数(纯虚函数一定会实现)。默认情况下,为了获得最大执行速度,会实现所有方法,但是如果.proto文件包含: option optimize_for = CODE_SIZE; 只会重载必要的方法,这会显著减少生成代码的大小,但是会降低效率。如果.proto文件包含: option optimize_for = LITE_RUNTIME; 进行所有方法的快速实现,但是只实现google::protobuf::MessageLite接口,该接口只有Message中的部分方法。 Message接口定义的方法

【Google Protocol Buffer】Google Protocol Buffer

China☆狼群 提交于 2020-03-09 08:29:06
http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 17 评论: 刘 明 , 软件工程师, 上海交大电子与通信系 2010 年 11 月 18 日 内容 在 IBM Bluemix 云平台上开发并部署您的下一个应用。 开始您的试用 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议

go语言学习--protobuf的学习

℡╲_俬逩灬. 提交于 2020-03-09 08:28:12
最近在学习中遇到了protobuf,哇喔竟然不知道,马上进行了学习,protobuf也是数据解析的方式,平时使用最多的是json和xml,那么好了,对比下他们的区别,并且附上protobuf的使用。 数据交互xml、json、protobuf格式比较 1、json: 一般的web项目中,最流行的主要还是json。因为浏览器对于json数据支持非常好,有很多内建的函数支持。 2、xml: 在webservice中应用最为广泛,但是相比于json,它的数据更加冗余,因为需要成对的闭合标签。json使用了键值对的方式,不仅压缩了一定的数据空间,同时也具有可读性。 3、protobuf:是后起之秀,是谷歌开源的一种数据格式,适合高性能,对响应速度有要求的数据传输场景。因为profobuf是二进制数据格式,需要编码和解码。数据本身不具有可读性。因此只能反序列化之后得到真正可读的数据。 相对于其它protobuf更具有优势 1:序列化后体积相比Json和XML很小,适合网络传输 2:支持跨平台多语言 3:消息格式升级和兼容性还不错 4:序列化反序列化速度很快,快于Json的处理速速 结论: 在一个需要大量的数据传输的场景中,如果数据量很大,那么选择protobuf可以明显的减少数据量,减少网络IO,从而减少网络传输所消耗的时间。 使用 WIN7 + Go1.9.2+protobuf3.5.1

protocol buffer c++ python库安装

坚强是说给别人听的谎言 提交于 2020-03-06 10:40:42
c++库安装较简单,不要用源码,还得下载依赖,就被墙了 https://github.com/google/protobuf/releases 下载一个最新的release安装 #protoc --version libprotoc 3.0.0 安装成功 python库则比较噁心,服务器上没有vpn 各种被墙 需要下载 pytz-2015.4-py2.7.egg google_apputils-0.4.2-py2.7.egg 并创建目录解压到 /usr/local/lib/python2.7/site-packages/ python-gflags-2.0.tar.gz python-dateutil-2.4.2.tar.gz 直接下载安装 ~/devspace/protobuf-3.0.0-alpha-2/python $ python setup.py build $ python setup.py google_test # sudo python setup.py install 来源: https://www.cnblogs.com/shenguanpu/p/4511518.html

golang环境protocol buffer的安装

前提是你 提交于 2020-03-06 10:40:25
怎么在go语言中使用google protocol Buffer呢? 1、下载相应的proto版本:https://github.com/google/protobuf/releases 2、把bin下的protoc文件 copy到GOPATH目录和/usr/local/bin目录里 3、下载protoc-gen-go插件:https://github.com/golang/protobuf/ 4、把上述文件拷贝到GOPATH路径下 5、cd到protobuf下执行make 6、到GOPATH目录下的bin目录中找到可执行文件protoc-gen-go,拷贝到/usr/local/bin里 7、编写protobuf文件,执行编译命令protoc --go_out=. xxx.proto 来源: https://www.cnblogs.com/zhenxing1114/p/5950485.html

Hadoop自己编译Hadoop安装包

。_饼干妹妹 提交于 2020-03-06 10:38:25
CentOS-6.7 编译 hadoop-2.6.5 (只需输入红色命令即可) 目录 1、阅读编译文档 .............................................................................................................................1 2、准备编译环境 .............................................................................................................................2 3、安装 gcc .....................................................................................................................................2 4、安装 gcc-c++ ..............................................................................................................................2