jarvisbox

Inspect Nested Protobuf Messages

The decoder speculatively parses every length-delimited field as a sub-message, revealing arbitrarily deep nested structures — no schema needed. Paste Base64 or hex bytes and explore the full message tree.

In the protobuf wire format, nested messages, strings, bytes, and packed repeated fields all share wire type 2 (length-delimited). The only way to distinguish a nested message from a raw byte string at the wire level — without a .proto schema — is to attempt parsing the bytes as a protobuf message and check whether it succeeds.

The Protobuf Decoder uses speculative parsing: every length-delimited field's bytes are recursively attempted as a protobuf message. If the bytes parse cleanly as valid field tags and wire types all the way through, the field is shown as an indented sub-tree. Otherwise, the tool falls back to UTF-8 string detection, then hex display.

This heuristic works well in practice: real nested messages almost always parse cleanly. Arbitrary binary data occasionally triggers false positives, but those sub-fields will be incomplete or show only a few fields — which is still useful for debugging.

How to inspect nested messages

  1. Paste Base64 or hex bytes of a complex protobuf message (such as a Kubernetes object, a Protobuf Any type, or a multi-level API response) into the Protobuf Decoder.
  2. Click Decode. Fields shown as [nested · NB · M fields] are length-delimited sub-messages that were successfully parsed recursively.
  3. Use Copy as JSON to export the full tree, including all nested objects, as a JSON document.

Related decode variants

回報這個工具的問題