Protocols & Binary Serialization

MessagePack decoderInspect bytes without losing their types

Paste hex, Base64 or decimal bytes, or open a local binary file. Switch direction to encode standard JSON.

MessagePack decoder

Input

Result

Bytes and files are processed in this browser; nothing is uploaded.

Options

Paste bytes or open a file to inspect one MessagePack value.

A cache record or network frame can contain valid MessagePack yet look like unreadable noise. This MessagePack decoder shows its nested values and their wire types before you copy a JSON preview.

A plain MsgPack to JSON conversion may hide the difference between text and binary, round a 64-bit identifier, or ignore bytes after the first object. Here the tree keeps those distinctions visible, while JSON to MessagePack is available for checking a normal JSON sample.

Why use this MessagePack decoder

The wire types remain visible even when JSON cannot express them.

Read the typed tree first

The MessagePack decoder labels strings, raw bin bytes, extension codes and exact 64-bit integers separately. A JSON preview adds explicit markers where JSON has no equivalent type, so inspection does not quietly erase the clue you needed.

A row of binary tiles branches into distinct text, raw byte, extension and long integer forms.

See where the value actually ends

A complete first object followed by extra bytes is reported at the first trailing byte. Truncated payloads also report their byte offset. You can tell a concatenated stream or damaged capture from a clean single value.

A structured value ends before a second group of byte tiles, with an amber marker at the trailing-byte boundary.

Avoid format and export surprises

01

Choose the representation you actually have

Hex is the default. Change to Base64 or decimal bytes before pasting another representation; the tool does not guess an ambiguous short string. A local file is read as raw bytes and switches to decode mode.

  • The example includes a binary field, custom extension and large integer so the type labels are easy to compare.
02

Decide when to run

Auto-process waits 350 ms after input changes. Switch it off to show the Decode or Encode button and use Ctrl/Cmd+Enter. Editing input or its format immediately disables export of the old result.

  • Switching between tree and JSON preview does not reinterpret the bytes.
03

Check the type before exporting

Read node types and byte offsets in the tree, then use the JSON preview for downstream reading. Encode mode can download actual .msgpack bytes rather than just a printed hex string.

  • A preview marker for an extension or binary value is informational, not a reverse-encoding command.

Inspect and produce real MessagePack bytes

Nested maps and arrays

Expand keys and indices in a typed tree. Nodes show their starting byte offset and encoded length, and large structures appear 100 visible rows at a time.

Binary and extensions survive inspection

Raw bin values remain hex bytes. Unknown ext values retain their signed type code and full payload; the standard timestamp extension also shows seconds, nanoseconds and raw bytes.

JSON encoding and file export

Switch to JSON to MessagePack for ordinary JSON values. Copy hex, Base64 or decimal bytes, or download the true binary file for another decoder or application.

Where conversion has a boundary

One complete value per input
This MessagePack decoder rejects extra bytes after the first value instead of silently taking only the first message. It does not unpack a concatenated multi-message stream; split that stream before inspecting it.
Unknown extensions stay opaque
Only timestamp type -1 has a defined generic meaning. An application extension keeps its type number and raw payload; this tool cannot infer a UUID, date or business object from an undocumented code.
JSON preview is not a lossless round trip
JSON has no native bin, ext, non-string map key or exact 64-bit integer type. The preview uses visible markers, and the encoder accepts standard JSON rather than treating those markers as special syntax.
Browser limits are explicit
Input is limited to 1 MiB, 64 nesting levels and 10,000 nodes. An over-limit value stops with an error instead of being partially shown as if complete; no URL fetching or other binary protocol decoding is performed.

MessagePack decoder questions

What input formats does this accept?

Paste hex, Base64 or a comma-separated decimal byte array, selecting the matching format first. You can also open a local binary file; it is read as bytes, not as UTF-8 text.

How are binary and extension types handled?

The tree distinguishes bin from str. Unknown ext values show their signed type code and raw hex payload. The JSON preview uses explicit markers because normal JSON cannot represent either wire type directly.

Does it keep full precision for large integers?

Yes in the tree. Values outside JavaScript's safe integer range are kept as exact decimal strings in marked JSON preview objects, never silently rounded to a Number.

What does the trailing bytes warning mean?

One MessagePack value finished before the input ended. The error gives the first extra byte offset; the rest may be a second message, a framing byte or damaged capture.

Is my data uploaded anywhere?

No. Pasted text and selected files are parsed in your browser. File reading uses the local File API; this page does not send the payload to a server.

Still have a question?

Try the MessagePack decoder

Load the example to compare the typed tree with its JSON preview, then inspect your own payload or encode a standard JSON sample with this MessagePack decoder.

Runs locally in your browser.