MessagePack Decoder
Decode MessagePack bytes from hex, Base64 or a dropped file into JSON, with a byte-offset breakdown showing every format byte the encoder used.
JSON
{
"name": "ByteTools",
"compact": true,
"schema": 0,
"tags": [
"msgpack",
"binary"
],
"pi": 3.141592653589793
}Byte-offset breakdown
offset size format — value
0 +66 fixmap — 5 pairs
1 +5 fixstr — "name"
6 +10 fixstr — "ByteTools"
16 +8 fixstr — "compact"
24 +1 true — true
25 +7 fixstr — "schema"
32 +1 positive fixint — 0
33 +5 fixstr — "tags"
38 +16 fixarray — 2 elements
39 +8 fixstr — "msgpack"
47 +7 fixstr — "binary"
54 +3 fixstr — "pi"
57 +9 float 64 — 3.141592653589793What is the MessagePack Decoder?
The ByteTools MessagePack Decoder reads MsgPack binary data and turns it back into JSON you can scan.
- Complete MessagePack format-byte table, fixints to ext 32
- 64-bit integers kept exact instead of losing precision
- Timestamp extension type -1 decoded to an ISO 8601 date
- Per-element byte offsets, sizes and format names
- Hex, Base64 or a dropped file as input
- 100% client-side — data never leaves your browser
How to use the MessagePack Decoder
- 1
Choose hex or Base64 as your input format, or drop a .msgpack file to load its bytes as hex automatically.
- 2
Paste the MessagePack data into the text box; whitespace and 0x prefixes are ignored.
- 3
Read the JSON output, then copy it or download it as a .json file.
- 4
Open the byte-offset breakdown to see the format byte, size and value of every element in the order it appears.
About the MessagePack Decoder
The ByteTools MessagePack Decoder reads MsgPack binary data and turns it back into JSON you can scan. It implements the full format-byte table from the MessagePack specification: positive and negative fixints, fixmap, fixarray and fixstr, the 8, 16 and 32-bit str, bin and ext families, every uint and int width up to 64 bits, float32 and float64, and nil, true and false.
Alongside the JSON it prints a byte-offset breakdown, listing each element with the exact format byte the encoder chose, how many bytes it occupied and a preview of its value. That makes it easy to see why a payload is larger than you expected, or to confirm a library is emitting str rather than bin for your text.
All decoding is done 100% locally in your browser. Nothing is uploaded, so you can safely inspect cached Redis values, API payloads and log records that contain real customer data. The whole tool is plain JavaScript with no network calls at all, which also means it keeps working once the page has loaded even if you go offline.
Frequently asked questions
What is MessagePack and why use it over JSON?
MessagePack is a binary serialisation format that encodes the same data model as JSON in far fewer bytes. Small integers take one byte, short strings carry a single-byte header, and there is a real binary type. It is popular for caching, Redis values and high-volume RPC where JSON's size becomes a cost.
What is the difference between str and bin in MessagePack?
str holds UTF-8 text and bin holds arbitrary bytes. The distinction was added in 2013 because the original format had no way to carry binary data safely. If a library writes your text as bin, older readers may hand you raw bytes instead of a string, which the byte-offset breakdown makes easy to spot.
How are 64-bit integers handled?
JavaScript numbers cannot hold every 64-bit integer exactly, so values outside the safe integer range are decoded with BigInt and rendered as strings in the JSON output. That keeps the exact value visible instead of silently rounding it.
What are ext types in MessagePack?
Extension types let an application define its own binary payloads with a type number from -128 to 127. Negative numbers are reserved by the specification — type -1 is the standard timestamp, which this tool decodes into a readable date. Any other ext type is shown as its type number plus raw hex.
Is my MessagePack data uploaded?
No. Decoding runs entirely in your browser and the tool makes no network requests, so cached values and API payloads never leave your machine.
Related tools
CBOR Decoder
Decode CBOR (RFC 8949) from hex or Base64 into readable JSON and diagnostic notation, with tags, maps, indefinite lengths and half floats.
Protobuf Decoder
Decode raw Protocol Buffers wire-format bytes without a .proto file. Paste hex or Base64 and read every field number, wire type and value.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Hex Dump Viewer
View any file as a classic hex dump in your browser — offsets, hex bytes and an ASCII column, xxd style. Nothing is uploaded. Copy or download the dump.
Base64 Decoder
Decode Base64 to readable text or download it as a file. Handles URL-safe base64url and missing padding automatically. Free, private, in-browser decoder.