Decode Protocol Buffers wire data

Decode Protocol Buffer wire fields from binary data when the original schema is unavailable.

freeworks offlinenothing uploaded
ToolProtobuf Viewer
Input
Output
—

How it works

The decoder reads a varint tag, separates field number from wire type, and consumes varints, fixed-width values, or length-delimited bytes. Possible scalar, string, and nested-message interpretations are shown because wire bytes alone do not carry field names.

  • No .proto file is required for wire-level inspection.
  • Ambiguous values are presented as alternatives rather than silently typed.

Worked example

User message with id (varint) and name (string)
Decode base64-encoded Protobuf wire format data with field interpretation
Input
											CAESBUFsaWNl
										
Output
												Field number  Wire type  Wire type name          Raw value       Possible interpretations
------------  ---------  ----------------------  --------------  ------------------------------------------------------------------------
1             VARINT     VARINT                  1               uint: 1, sint (zigzag): -1, bool: true
2             LEN        LEN (length-delimited)  41 6c 69 63 65  string: "Alice", bytes: 5 bytes, packed varints: [65, 108, 105, 99, 101]
											

When to use this

gRPC captures, browser debugging, and cross-language wire-compatibility tests use this view.

Edge cases

  • A varint can represent uint, sint, enum, or bool.
  • Length-delimited bytes can be text, packed numbers, raw bytes, or a nested message.
  • Field zero and truncated fixed-width values are invalid.

References