Protobuf Decoder
What is a Protobuf Decoder?
Decode raw Protocol Buffers (`.proto) binary wire-format payload hex or <a href="https://en.wikipedia.org/wiki/Base64" target="_blank" rel="noopener noreferrer" class="text-indigo-600 dark:text-indigo-400 font-semibold hover:underline" title="Learn more about Base64 on official docs">base64</a> streams into field numbers, wire types, varints, fixed length values, and embedded sub-messages without requiring a .proto` schema file.
Why Use This Tool?
- gRPC & Web API Debugging: Inspect raw gRPC binary responses from server network traffic without compiling `.proto` files.
- Reverse Engineering Network Protocols: Reverse-engineer mobile app or web API binary Protobuf payloads.
- Varint & ZigZag Inspection: Inspect wire-type field tags (Varint wire 0, 64-bit wire 1, Length-delimited wire 2, 32-bit wire 5).
How to Use
- Paste raw Protobuf binary stream as Hex string or Base64 text.
- The schemaless decoder parses field tags and wire types automatically.
- View parsed field numbers (`Field 1`, `Field 2`), wire types, and decoded string/number values.
Real Working Example
Input:
Protobuf Hex: 0a074a6f686e20446f65101e
Output Result:
Decoded Fields: Field 1 (Wire Type 2 - Length Delimited): "John Doe" Field 2 (Wire Type 0 - Varint): 30
Important Technical Details & Specifications
- Schemaless Wire Format Engine: Decodes field numbers `(tag >> 3)` and wire types `(tag & 0x07)` dynamically.
- Supports All Protobuf Wire Types: Wire 0 (Varint), Wire 1 (64-bit fixed), Wire 2 (Length-delimited string/bytes/message), Wire 5 (32-bit fixed).
- Local Memory Security: Binary payloads are processed 100% locally in browser memory.
Related Data & Format Tools
- CBOR Converter: Convert CBOR binary hex to JSON.
- MessagePack Converter: Convert MessagePack hex to JSON.
- Base64 Encoder/Decoder: Encode and decode Base64 strings.
Frequently Asked Questions
How does schemaless Protobuf decoding work without a .proto file?
Protobuf wire format encodes field numbers and wire types directly in tag bytes, allowing field numbers and data types to be identified without schema definitions.
What is a Protobuf Varint?
A Varint (variable-length integer) encodes integers using 1 to 10 bytes depending on magnitude, saving space for small numbers.
Is it free?
Yes, 100% free.
Can I paste base64 encoded gRPC headers?
Yes, input can be pasted as raw Hexadecimal bytes or Base64 text.
Are my Protobuf binary payloads saved on a server?
No, all decoding executes 100% locally inside your web browser.
What are field numbers in Protocol Buffers?
Field numbers are unique integer identifiers assigned to fields in a .proto schema (e.g. string name = 1).