Data format

MSGPACK converter

A .msgpack file holds MessagePack data: a binary encoding of the same value model JSON uses — maps, arrays, strings, numbers, booleans, null — packed into as few bytes as it can manage. It is often described as binary JSON, and for the common cases that is accurate.

Private for supported formats — processed in your browser

Convert supported files

Runs on your device

Drop MSGPACK files here

Batch files can each use a different output. Nothing uploads for local conversions.

Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.

Where MSGPACK comes from

Sadayuki Furuhashi released MessagePack in 2008 for systems that wanted JSON's flexibility without JSON's size and parsing cost. It spread quickly through Redis tooling, Fluentd, Pinterest and a long tail of game and IoT projects, and gained an extension-type mechanism so applications could carry timestamps and custom types the base model has no room for. The timestamp extension was later standardized so at least that one case is portable.

How MSGPACK works

  • Small values are encoded in a single byte: integers from -32 to 127 and short strings and arrays carry their length in the type byte itself.
  • Integers keep their width, so a value that JSON would render as a lossy double stays an exact 64-bit integer.
  • Binary data has a real type (bin) rather than being base64-encoded into a string, which is where most of the size saving comes from.
  • Map keys may be any type, not only strings, so a MessagePack document can encode things JSON cannot represent at all.
  • Extension types (-128 to 127) are application-defined, so two producers can use the same tag for different things.

When to use MSGPACK

  • Compact message payloads on constrained links or between microservices
  • Cache and queue entries where JSON's parse cost is measurable
  • Persisting structured application state in a single small file
  • Inspecting a captured payload by converting it to readable JSON or YAML

Strengths and limitations

Strengths

  • Noticeably smaller and faster to parse than JSON for the same data
  • Exact integers and real binary support, both of which JSON lacks
  • Implementations exist for essentially every language

Limitations

  • Not human-readable, so debugging needs a tool rather than a text editor
  • Application-defined extension types are not portable between producers
  • Non-string map keys and binary values have no faithful JSON representation

Compatibility

Official and community libraries cover C, C++, Java, Python, Ruby, Go, Rust, PHP, C# and JavaScript. Novus Convert decodes .msgpack in the browser into a JSON-compatible typed model and writes JSON, CSV, XLSX, YAML or YML. Values with no JSON equivalent — binary blobs, non-string map keys, unknown extension types — are normalized explicitly and reported rather than dropped silently.

MessagePack has no metadata layer beyond the data itself; type information survives into JSON and YAML only where those formats can express it.