MessagePack Viewer

Decode MessagePack binary data to readable JSON right in your browser.

Ad placeholder (leaderboard)

MessagePack is a binary serialization format that encodes the same data model as JSON — maps, arrays, strings, numbers, booleans and null — but in a far more compact byte stream. It is widely used in RPC systems, Redis-based tooling, real-time game networking and high-throughput APIs where parsing speed and payload size matter. This viewer decodes raw MessagePack back into readable JSON so you can debug those payloads.

How it works

MessagePack uses a single leading byte to select a format family, and the value or length follows:

  • Small integers, strings, arrays and maps use compact “fix” forms: positive fixint 0x00–0x7f, negative fixint 0xe0–0xff, fixstr 0xa0–0xbf, fixarray 0x90–0x9f and fixmap 0x80–0x8f.
  • Longer strings, binary blobs, arrays and maps use str, bin, array and map markers with 8, 16 or 32-bit length prefixes.
  • nil, false and true are the single bytes 0xc0, 0xc2 and 0xc3, while floats use 0xca (float 32) and 0xcb (float 64).
  • Extension types (fixext and ext) carry an application-defined type code plus a payload — these are shown without losing data.

The decoder reads the leading byte, dispatches to the matching family, and recurses into nested arrays and maps until the whole stream is consumed.

Example

The hex 82 a1 61 01 a1 62 92 02 03 decodes to:

{
  "a": 1,
  "b": [2, 3]
}

82 is a 2-entry fixmap, a1 61 is the fixstr "a", 01 is the integer 1, a1 62 is "b", and 92 02 03 is a 2-element fixarray [2, 3]. Binary values appear as bin:0x… and extensions as ext(type=n):0x…. All decoding happens locally in your browser.

Ad placeholder (rectangle)