protobuf

初识protobuf和php的相关用法

耗尽温柔 提交于 2020-01-31 07:56:50
前言      大家好,这是我在博客园的第一篇博文,很早之前就想尝试开通技术博客了,但是由于各种原因计划一直都没有实施。开通博客只是想简单的记录下自己生活工作相关的一些事情,之前一直在用evernote记录,无法用更多的人分享一些信息和交流,所以打算开通博客,将之前evernote上记录的一些经历分享出来和大家一起探讨学习,初步定于每星期更新一篇博文,以后有时间可以能会增加更新的频率,因为不经常写,所以文采可以忽略,有错误的地方还望大家及时指正。废话不多说,下面开始我的第一篇博文 正文    本文主要介绍下php结合protobuf的一些相关用法,首先php相信大家都比较了解,它是一门主要用于web开发的解释型高级面向对象的计算机编程语言,其全称是超文本预处理器(Hypertext Preprocessor),现在的最新稳定版本是7.1。下面重点介绍下protobuf,protobuf是谷歌开源的一种用于数据交换的开源协议,其主要的特点是跨平台、跨语言、可扩展,它是一种用于序列化结构数据的开源协议。目前业界在扩平台、跨语言的领域数据交换用的最多的是使用json,但是相较于json,protobuf主要的特点表现为可扩展性强、安全性好、速度更快,下面我们就详细看下php是怎么结合protobuf序列化结构数据的   1、首先需要在开发机上面安装protobuf

一.什么是protobuf

南楼画角 提交于 2020-01-31 07:56:34
Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 (翻译自protobuf3官网) 来源: https://www.cnblogs.com/kexianting/p/11507435.html

mac下protobuf的安装

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-30 02:14:00
官方下载 https://github.com/protocolbuffers/protobuf/releases 我下载的是第一个 下载好后在终端执行下列命令: 解压:tar -zxf path/protobuf-all-3.11.2.tar.gz(path:下载的protobuf所在路径) 跳转到解压目录:cd path/protobuf-3.11.2(path同上) 设置编译目录:./configure --prefix=/Users/a123/protobuf(prefix 为安装目录,可自定义) make make install cd ~(.bash_profile 文件应在根目录下) vim .bash_profile 文件 添加如下代码: export PROTOBUF=/usr/local/protobuf export PATH=$PROTOBUF/bin:$PATH 运行 source .bash_profile 命令 测试是否安装:运行 protoc --version 命令,如果输出版本号说明安装成功 来源: CSDN 作者: dongmie1999 链接: https://blog.csdn.net/dongmie1999/article/details/104108725

网络数据传输的格式

若如初见. 提交于 2020-01-27 02:51:44
博客引用: https://blog.csdn.net/weixin_42931825/article/details/82455349 1. json (javaScript Object Notation) json的数据表现形式: { "sites": [ { "name":"菜鸟教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } ] } json 指的是对javascript 对象表示法 ,是一种轻量级的文本数据交换格式。在语法上与创建JavaScript对象的语法相同,由key|value (键|值)构成。 json的优点: 1.具有自我描述性,易于阅读编写,也易于机器编写和解析。 2.使用javascript语法来描述数据对象,但json仍然独立语法和平台。json解析器和json解析库支持许多不同的编程语言,目前非常多的动态(PHP,JSP,.NET)编程语言都支持json. 3.非常适用于服务器与javascript交互。 2.XML(eXtensible Markup Language) XML数据表现形式: <?xml version="1.0" encoding="UTF-8"?

Protobuf 学习手册——编码篇

冷暖自知 提交于 2020-01-25 09:02:31
一、编码规范 Google 官方提供了 Protobuf 的编码规范,通过遵循这些规范,可以使 Protobuf 消息定义及其相应的类保持一致并易于阅读。 Protobuf 编码规范可能随着时间推移而发生变化,对于既有项目,应当保持编码规范的一致性,而不需盲目保持最新的编码规范。但是对于全新项目,应当遵循官方的编码规范,可以 点击这里 查阅官方最新的编码规范。 1.1 Override 一行不超过 80 个字符 两个空格缩进 1.2 文件结构 文件名采用下划线分割命名,形如: lower_snake_case.proto 。所有 .proto 文件应当遵循以下规范: License 头(如果需要的话) 文件综述 Syntax Package Imports (排好序的) File options 一切其他的东西 1.3 Package 包名应当小写,且应当对应于目录结构。例如文件位于 my/package/ 目录, 那么 package 应该是 my.package 。 对于 Java 应用,我们更习惯于使用 option java_package ,很少使用 package。 1.4 Message and field names 对于 messages,使用首字母大写的驼峰命名,例如 SongServerRequest 对于参数名,使用下划线分割命名,例如 song_name

centos6.5 安装 protobuf及grpc-c++

╄→尐↘猪︶ㄣ 提交于 2020-01-24 23:53:27
GRPC 安装依赖于 protobuf,zlib,c-ares,zlib,pkg-config, gcc需支持c11, gcc4.8以上均支持c11 我的部署机器系统为centos6.5, gcc为4.9.4. 安装包均在git上下载 grpc: https://codeload.github.com/grpc/grpc/zip/v1.26.0 protobuf:protobuf-3.7.0 尝试了下使用3.5.1来编译v1.26.0的grpc源码会报错,根据官网更新文档,理论上pb至少需要3.6以上才支持,用3.7.0能编译成功 来源: CSDN 作者: Below_Crusder 链接: https://blog.csdn.net/Below_Crusder/article/details/104019519

在pycharm中使用protobuf

廉价感情. 提交于 2020-01-24 23:31:41
文章目录 主要目标 在pycharm中使用protobuf 1. 工具安装 1.1 下载protoc 1.2. pycharm中安装插件 1.3 安装对应库 2. 使用 2.1 编写proto文件 2.2 转化为指定语言的文件 将protobuf中的枚举类型转换为JS对象 1. 问题来了 2. proto文件转js脚本 主要目标 记录在pycharm中使用protobuf的过程 将protobuf中的枚举类型转换为JS对象 在pycharm中使用protobuf 1. 工具安装 1.1 下载protoc 下载适合自己系统版本的protoc 点击链接 建议将protoc将入环境变量中,便于使用 1.2. pycharm中安装插件 在pycharm中可以编辑.proto文件,但是需要安装protobuf support插件 1.3 安装对应库 python版本 pip install protobuf 2. 使用 2.1 编写proto文件 具体语法规范还是看教程吧,木有整理,直接贴代码。 message_proto.proto文件 syntax = "proto3"; // package top.huanmengmie; // 定义包名 enum ErrorCode{ Failed = 0; Success = 1; // 请求成功 ParamInvalid = 10; //

修改现有消息类让.net core项目支持Protobuf - 【无需使用 [ProtoBuf.ProtoContract] 的方法】

半腔热情 提交于 2020-01-24 14:54:33
前言 小说搜索引擎 198200.com 第二次发博客,希望大家多多鼓励!!! 又接无上老板的一个需求,需要让.net core消息发送端跟消息接收端通信的消息是protobuf格式的(基于protobuf比json小一倍数据量,独特的编码、没有fieldname等),但现有项目的消息类数量巨多,按照网上的方案是安装protobuf.net 这个nuget包,然后需要给消息类一个一个添加[ProtoBuf.ProtoContract]、[ProtoBuf.ProtoMember(index)]等Attributes,更可悲的是,还得处理继承的问题,也就是要有类似如下这种代码: [ProtoContract] [ProtoInclude(10, typeof(Male))] public class Person { [ProtoMember(1)] public int Id { get; set; } [ProtoMember(2)] public string Name { get; set; } [ProtoMember(3)] public Address Address { get; set;} } [ProtoContract] public class Male : Person { } [ProtoContract] public class Address {

java中使用Protobuf的实例(Demo)

可紊 提交于 2020-01-24 09:59:14
由于Protobuf受到推崇,故尝试采用protobuf来摒弃传统的xml进行传输数据。 首先,需要下载的关于Protobuf的文件: 1.到http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载,我选择的是protoc-2.4.1-win32.zip 2.下载一个protobuf-java-2.4.1.jar文件(注意,要与你刚才下的proto.exe版本相同) 然后就开始开发了。 步骤: 1.用记事本编写一个.proto文件: }如:我编写的是test.proto package protobuf; option java_package = "com.sq.protobuf"; option java_outer_classname = "FirstProtobuf"; message testBuf { required int32 ID = 1; required string Url = 2; } 将其放在与刚解压的protoc.exe同级目录中。 2. 在cmd中,到protoc-2.4.1-win32文件夹下, 执行 E:\protoc-2.4.1-win32> protoc.exe --java_out=./ test.proto 则可以找到的一个生成的FirstProtobuf.java文件。

go-excel转protobuf升级到python3

筅森魡賤 提交于 2020-01-23 17:07:13
title: go-excel转protobuf升级到python3 categories: Go tags: [go, excel, protobuf, python3] date: 2020-01-15 16:27:24 comments: false go- excel转 protobuf 升级到python3 前篇 网上找到的 xls_deploy_tool.py 转换工具是 python2 版本的, 这里把它升级到 python3 升级到 python3 py3 已支持中文, 不需要 unicode 转换, 干掉 字符串 count 修改, comment.count("\n") 修改为 str.count(comment, "\n") 日志打印, print "" 改为 print("") 异常异常处理 ?处理 except BaseException, e 改为 except BaseException as e protoc 需要使用 3.0 以上, 才能生成 xx_pb2.py 中 serialized_pb=b'sss' 字符串的二进制数据, 参考: https://github.com/protocolbuffers/protobuf/issues/4272 报错: No module named 'google' , 需要安装几个 Google 库, 参考: