Protocol Buffers

protobuf 2.5.0 编译jar

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 06:59:25
本机是windows环境 1. 下载 protobuf最新版本:https://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.5.0.tar.gz 2. 解压后发现没有包.java下面只有一个POM.xml. 用maven吧.(mvn3的环境自己上网找吧) 3. cmd进入protobuf-2.5.0\java\ 运行 mvn package 发现错误: Java代码 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin: 1.3 :run (generate-test-sources) on project protobuf-java: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "..\src\protoc" : CreateProcess error= 2 , ????????? -> [Help 1 ] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e

开源区块链ChainCore源码方式安装

送分小仙女□ 提交于 2019-12-06 02:50:08
安装环境要求 Ubuntu Golang PostgreSQL Google ProtoBuf 本文中采用具体环境 Ubuntu 16.04 Golang 1.7.5 PostgreSQL 9.5.5 Google ProtoBuf 2.6.1 Golang环境安装 如果机器上已经安装过Golang,则可以跳过此步骤。 下载Golang安装包 下载地址为:https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz 传送门 安装Golang 假定golang安装包的名称没有改过(名称为go1.7.5.linux-amd64.tar.gz) 打开Terminal,进入root用户模式,cd到安装包所在路径 # 解压 tar zxf go1.7.5.linux-amd64.tar.gz # 移动解压后的go目录 mv go /usr/local/go # 配置环境变量 vim /etc/profile 在 /etc/profile 后面追加配置: export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin 环境变量添加成功后,有两种方式使环境变量生效 注销系统,重新登录 使用source命令,这种方式仅限当前Terminal中有效 对于第二种方式,命令如下

PHP中使用gRPC客户端

泪湿孤枕 提交于 2019-12-06 02:42:44
因为工作需要使用gRPC,本人使用的是windows10,不过linux的操作流程基本一样。 直接进入主题,分为了几部分 1、下载Protoc 下载地址: https://github.com/google/protobuf/releases 这里采用的二进制文件,选择对应的平台,下载 https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protoc-3.7.1-win64.zip 解压后得到,在bin文件夹下的 protoc.exe。我放到 D:\Program Files\protoc-3.7.1-win64\bin 下,并加入到系统环境变量 Path 中,就可以使用 protoc 命令了,可以用 protoc --version 来查看是否成功。(这一步很重要用于生成 protobuf 文件对应的 PHP代码 用的) 2、编写 protocol buffers 文件 如何编写请看 Protobuf3语言指南 写得不错,首先创建一个为 testgrpc_com 项目,我这的位置是 E:\www\testgrpc_com ,在项目下简单写了一个 xuexitest.proto syntax = "proto3"; // 指定proto版本 package xuexitest; // 指定包名 /

Protobuf Thrift数据描述语言调研

眉间皱痕 提交于 2019-12-04 08:28:37
编者注 由于json是字符进行传送,尤其是传送float参数,会直接导致数据传输量暴增。则需要使用二进制化的跨语言传输方法。编者找到Google Protocol Buffers,Apache Thrift,Apache avro。 Google Protocol Buffers Google Protocol Buffers 官网 - 需要翻墙 Git地址 protobuf git 安装 通过Readme,安装包在如下url Protocol Compiler Installation 由于protobuf-all-x.x.x.tar.gz需要进行重新编译,则本作者下载的是 protoc-3.5.1-win32.zip 解压缩后,能够看到如下结构 │ readme.txt │ ├─bin │ protoc.exe │ └─include └─google └─protobuf │ any.proto │ api.proto │ descriptor.proto │ duration.proto │ empty.proto │ field_mask.proto │ source_context.proto │ struct.proto │ timestamp.proto │ type.proto │ wrappers.proto │ └─compiler plugin.proto

protobuf,json,xml,binary,Thrift之间的对比

半城伤御伤魂 提交于 2019-12-04 01:04:29
golang 使用 protobuf 的教程 golang使用protobuf 一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一,总体看来ProtoBuf的优势还是很明显的。 protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,详情访问protobuf的google官方网站。 protobuf在google中是一个比较核心的基础库,作为分布式运算涉及到大量的不同业务消息的传递,如何高效简洁的表示、操作这些业务消息在google这样的大规模应用中是至关重要的。而protobuf这样的库正好是在效率、数据大小、易用性之间取得了很好的平衡。 protobuf简单总结如下几点: 1.灵活(方便接口更新)、高效(效率经过google的优化,传输效率比普通的XML等高很多); 2.易于使用;开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持java、c++、python等语言环境。通过将这些类包含在项目中,可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。 3.语言支持;原生支持c++,java,python 个人总结的适用protobuf的场合: 1.需要和其它系统做消息交换的,对消息大小很敏感的

php安装 protobuf2.6.1扩展

别等时光非礼了梦想. 提交于 2019-12-04 01:03:29
首次实际项目中用到protobuf,找了下资料,弄了下环境并跑通,做下记录以免忘记 由于对接方使用的是proto2.4版本,所以也只能使用版本2的了。注意下,大版本间似乎是不支持的,我们试过安装版本3,但跟第三方用的版本2死活参数不匹配。(版本2官方没有提供php支持源码,所以找的是第三方支持的源码。版本3的官方已经提供了对php支持源码。) --------protobuf是什么-------- 官方解释: What are protocol buffers? Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a

Protocol Buffers 开发者指南

拟墨画扇 提交于 2019-12-03 11:15:28
欢迎来到 protocol buffers 的开发者指南。protocol buffers 是一个语言中立,平台中立针对通讯协议,数据存储和其他领域中对结构化数据进行序列化的扩展方法。 本文档主要针对的是 Java,C++ 或 Python 的开发人员希望在开发的应用程序中使用 Protocol Buffers。这个有关 Protocol Buffers 摘要性的介绍将会告诉你如何开始使用 Protocol Buffers。如果你希望更加深入的了解有关 Protocol Buffers 的内容,你可以进入 tutorials 或者 protocol buffer encoding 页面来详细了解。 有关 API 的参考文档,请参考页面: reference documentation 这里提供了所有这 3 种语言的参考,同时也针对 .proto language 和 style 提供相关的指南。 什么是 Protocol Buffers? Protocol buffers 是对结构化数据序列化的一个灵活,高效,自动化工具 —— 你可以将 Protocol buffers 想象成 XML,但是体积更小,更快也更加简单。 你可以自己定义你的结构化数据,然后你可以使用特定的代码生成工具来非常容易对你的结构化数据进行读取和写入

Protobuffer | PHP安装Google protobuf及使用

僤鯓⒐⒋嵵緔 提交于 2019-12-02 21:32:25
PHP安装Google protobuf及使用 备注 项目采用redis集群(主从方式)存储数据;数据量月增50W,单个数据序列化情况下达到2k,继续压缩数据解决空间. 项目服务采用PHP(版本5.3)作为RPC服务版本. protobuf的相关说明和指南请参考 google proto buffers开发者指南 准备 安装protoc编译器 下载适合PHP 5.3版本的protobuf 2.5.0版本, 下载地址 解压并安装 tar -xvzf protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./configure --prefix=指定安装路径 make && make install 我是安装在/usr/local/protobuf-2.5目录下的; 安装PHP protocolbuffers扩展 通过pecl扩展安装, 扩展地址 pecl install channel://pecl.php.net/protocolbuffers-0.2.6 通过源码编译, 下载地址 tar -xvzf protocolbuffers-0.2.6.tar.gz cd protocolbuffers-0.2.6 phpize ./configure make && make install 经过1或者2, 然后在你的php.ini配置文件中添加 :

protocol buffers入门基础知识(一)

喜你入骨 提交于 2019-12-02 04:21:21
protocol buffers简介 下载地址 [Google Protocol Buffer](https://github.com/protocolbuffers/protobuf "Google Protocol Buffer")(简称 Protobuf)是一种轻便高效的结构化数据存储格式,一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议。 2.protocol buffers优势 与xml比较 1. 更简单 2. 数据描述文件只需原来的1/10至1/3 3. 解析速度是原来的20倍至100倍 4. 减少了二义性 5. 生成了更容易在编程中使用的数据访问类 与json比较 Json有一定结构的在数据量上还有可以压缩的空间。 pb则是序列化的二进制编码数据,而且数据的格式是事先通过一个后缀名为.proto的文件指定 省去JSON编解码体系中属性匹配和数据类型匹配的时间和精力,让我们能专注于解决自己的问题。 可读性上xml、json可读性强 3. Protocol Buffers 3.0 技术手册 4.一个pb的demo syntax = "proto3"; package tutorial; option java_package = "com.example.tutorial"; option java_outer_classname =

Protocol Buffers 简介

倾然丶 夕夏残阳落幕 提交于 2019-11-30 23:49:54
文档编辑和持续集成状态: 本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs/index.html (本 WIKI 中的内容将会与在线发布的版本同步) Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。 Protocol Buffer 相关快速导航 链接名称 链接地址 Protocol Buffer 中文文档 http://docs.ossez.com/protocol-buffers-docs/index.html 官方文档 https://developers.google.com/protocol-buffers/docs/overview 示例和测试代码 https://github.com/cwiki-us-demo/protocol-buffers-demo-java 如果你在互联网上搜索的话,你可能会看到下面的说明文字。 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48