πŸ“‘ gRPC Message Decoder

Parse gRPC frame headers, compression flags, message length, decode Protobuf wire format fields

Zero Dependencies Β· Works Offline

πŸ“ gRPC Message Input

What Can the gRPC Message Decoder Do?

The gRPC Message Decoder is a free online developer tool that parses gRPC message frame structure, including the 5-byte header (compression flag + message length) and Protobuf-encoded message body. It automatically decodes Protobuf wire format, showing each field's field_number, wire_type, and value. Supports recursive decoding of nested messages. Ideal for gRPC debugging, Protobuf protocol analysis, and microservice communication troubleshooting. All parsing is done locally in the browserβ€”your data is never uploaded to any server.

Core Features

  • gRPC Frame Header Parsing: Parse the 5-byte header, showing compression flag and message length
  • Protobuf Wire Format Decoding: Automatically parse varint/64-bit/32-bit/length-delimited wire types
  • Nested Message Recursive Decoding: Wire type 2 fields automatically attempt recursive decoding of nested messages
  • Multi-format Input: Supports both hexadecimal and Base64 input formats
  • Compression Detection: Automatically detects GZIP compression flag

Usage Tutorial

1. Select input format (hex or Base64) and paste gRPC message data.

2. Click "Decode" or use the Ctrl+Enter shortcut.

3. View the detailed parsing results for the gRPC frame header and Protobuf fields.

4. Click "Copy Result" to copy the parsed results or download as a JSON file.

Application Scenarios

Scenario 1: gRPC Debugging

Developers debugging gRPC microservice communication can capture binary data and use this tool to parse message structure and field values.

Scenario 2: Protobuf Protocol Analysis

Analyze unknown Protobuf message formats by decoding wire format to infer field types and structure.

Scenario 3: Microservice Troubleshooting

Operations teams troubleshooting gRPC inter-service communication issues can analyze message frames to locate data anomalies.

Extended Knowledge

gRPC uses HTTP/2 as the transport layer, with messages transmitted in Length-Prefixed Message format: 1-byte compression flag (0=uncompressed, 1=GZIP compressed) + 4-byte message length (big-endian) + message body. The message body uses Protocol Buffers encoding, where each field consists of a tag (field_number<<3|wire_type) and value. Wire type definitions: 0=Varint (int32/int64/bool/enum), 1=64-bit (fixed64/sfixed64/double), 2=Length-delimited (string/bytes/nested messages), 5=32-bit (fixed32/sfixed32/float). Varint encoding uses 7-bit groups + MSB continuation flag, providing high encoding efficiency for small values.

❓ FAQ

What is a gRPC message frame?

A gRPC message frame consists of a 5-byte header (1-byte compression flag + 4-byte message length) and the message body for transmitting Protobuf-encoded data over HTTP/2.

What is Protobuf wire format?

Protobuf wire format is the binary encoding format of Protocol Buffers, where each field consists of a varint-encoded field_number+wire_type and the corresponding value.

Does it support compressed messages?

The tool can detect the compression flag but does not decompress GZIP payloads in the current version. It will indicate the message is compressed.

Is data uploaded to a server?

No. All decoding is performed locally in your browser.

Which wire types are supported?

All standard wire types: 0(Varint), 1(64-bit), 2(Length-delimited), 3/4(deprecated), 5(32-bit).

Can it decode nested messages?

Yes. Wire type 2 (Length-delimited) fields will attempt to recursively decode nested Protobuf messages.

gRPC Message Decoder | No Signup, Client-Side Β· No Server Uploads

Feedback: dexshuang@google.com