TXT · Text & Data tools

MessagePack Decoder

Input encoding
Indent
Or load a file
Encoded bytes
Decoded
MessagePackformat0 Binput0lines out0chars out
Open the full binary format decoder with every format and the encoder

Shareable link

Settings are written to the URL as you change them. Nothing differs from the defaults yet.

One byte per type

MessagePack encodes the type in the first byte of every value. Small integers, short strings, short arrays, and short maps are packed into that byte, which is where most of the size saving comes from compared with JSON.

82 starts a 2-entry map, a7 starts a 7-byte string, and c3 is true. 82a7636f6d70616374c3a6736368656d6100 is the canonical example, and it decodes to {"compact": true, "schema": 0}.

Binary and string are different types

MessagePack distinguishes byte strings from text, which JSON does not. Byte strings render here as hex in angle brackets rather than being forced through a text decoder that would corrupt them.

If a value you expected as text arrives as bytes, the encoder wrote it with the bin family instead of the str family. That is a common mismatch between older and newer library versions.

Streams

Concatenated values are normal in MessagePack logs. The trailing byte counter shows how much was left after the first top-level value, which tells you a buffer holds several records rather than one.

Frequently Asked Questions

Hex or Base64 pasted into the input pane, or a .msgpack or .mpk file loaded with the file picker.

As the type number with the payload in hex. The reserved type -1 is decoded as a timestamp and rendered in ISO 8601.

MessagePack stores 64-bit integers, and JavaScript numbers lose precision past 2^53. Values outside the safe range are rendered as strings so the digits survive.

Pages locked to one format

Full Binary Format Decoder tool

Explore Our Tools

Browse all tools