Protocol Buffers Parser

Protocol Buffers is currently experimental and may change in future versions.

The Protocol Buffers parser is used for parsing incoming Protocol Buffers data. To use it set decoder to protobuf and set the fields’ source to the field number as defined in the protocol buffers definition.

Types

You will need to specify the corresponding type and format. See Parsing Data for more information about formats.

Proto Type Schema Type Schema Format
double number float64
float number float32
int32 integer uint32
int64 integer uint64
uint32 integer uint32
uint64 integer uint64
sint32 integer int32
sint64 integer int64
fixed32 integer uint32
fixed64 integer uint64
sfixed32 integer int32
sfixed64 integer int64
bool boolean
string string
bytes string bytes
message object
enum integer uint32 / uint64

Limitations

Proto enum values are read as unsigned integers. There is currently no mechanism for mapping these to the enum values’ string representation.

Example

Protocol Buffers definition:

syntax = "proto3";

message Record {
  string name = 1;
  int32 age = 2;
}

Decoder configuration:

decoder: protobuf
schema:
  type: object
  properties:
    name:
      type: string
      source: 1
    age:
      type: integer
      format: uint32
      source: 2