Mryqu's Notes


  • 首页

  • 搜索
close

尝试Protocol Buffers支持的各种数据类型

时间: 2013-09-22   |   分类: Service+JavaEE     |   阅读: 168 字 ~1分钟

Protocol Buffers(即protobuf)是Google开源的序列化库,是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化/反序列化。它很适合做数据存储或RPC的数据交换格式,常用作通信协议、数据存储等领域。 相比于常见的XML格式,ProtocolBuffers官方网站这样描述它的优点:

  • 平台无关、语言无关;
  • 高性能;
  • 体积小;
  • 使用简单;
  • 兼容性好。

现在尝试一下Protocol Buffers支持的各种数据类型。

test.proto

package com.yqu.proto;
option java_package = "com.yqu.proto";
option java_outer_classname="TestProtos";

message Test {
  required double   doubleVar   = 1;
  required float    floatVar    = 2;
  required int32    int32Var    = 3;
  required int64    int64Var    = 4;
  required uint32   uint32Var   = 5;
  required uint64   uint64Var   = 6;
  required sint32   sint32Var   = 7;
  required sint64   sint64Var   = 8;
  required fixed32  fixed32Var  = 9;
  required fixed64  fixed64Var  = 10;
  required sfixed32 sfixed32Var = 11;
  required sfixed64 sfixed64Var = 12;
  required bool     booleanVar  = 13;    
  required string   stringVar   = 14;
  required bytes    bytesVar    = 15;
  enum Suit {
    SPADES = 0;
    HEARTS = 1;
    DIAMONDS = 2;
    CLUBS = 3;
  }
  required Suit enumVar = 16 [default = HEARTS];
  repeated int32 int32ArrayVar = 17;
  repeated uint32 uint32ArrayVar = 18 [packed=true];
  repeated string stringArrayVar = 19;
  message MsgVar {
    required string url = 1;
    optional string title = 2;    
  }
  repeated MsgVar msgVar = 20; 
}

使用Google提供的Protocol Buffers编译器生成Java语言:

protoc -java_ out=. person. proto

TestProtos.java

尝试Protocol Buffers支持的各种数据类型尝试Protocol Buffers支持的各种数据类型

参考

Protocol Buffers官网

标题:尝试Protocol Buffers支持的各种数据类型
作者:mryqu
声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

#protobuf# #protocol# #buffers# #google# #序列化#
[Git] 预览远程仓库与本地仓库的差异
[Git] 获取两个版本间所有变更的文件列表
  • 文章目录
  • 站点概览

Programmer & Architect

662 日志
27 分类
1472 标签
GitHub Twitter FB Page
    • 参考
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%