🍋
Menu
.msgpack Data

MessagePack (бинарная сериализация)

MessagePack — эффективный формат бинарной сериализации, разработанный как компактная альтернатива JSON. Он кодирует те же структуры данных (карты, массивы, строки, числа) в бинарном формате, который обычно на 30–50% компактнее JSON.

MIME-тип

application/x-msgpack

Тип

Бинарный

Сжатие

Без потерь

Преимущества

  • + Smaller and faster than JSON with no schema required
  • + Drop-in JSON replacement — same data model
  • + Implementations in 50+ programming languages

Недостатки

  • Not human-readable in binary form
  • No schema validation — same weakness as JSON
  • Less widely adopted than JSON or Protobuf

Когда использовать .MSGPACK

Используйте MessagePack для API, где размер данных критичен, для слоёв кэширования, как формат хранения в Redis и при обмене данными между разноязычными сервисами.

Технические детали

MessagePack использует однобайтовые префиксы для определения типов: положительные fixint (0x00–0x7f), fixmap (0x80–0x8f), fixarray (0x90–0x9f), fixstr (0xa0–0xbf). Он поддерживает nil, boolean, int (8–64 бит), float (32/64), str, bin, array, map, ext и timestamp. Формат не содержит схемы — типы самоописывающие.

История

Фурухаси Садаюки создал MessagePack в 2008 году как альтернативу JSON с меньшими затратами ресурсов. Формат получил распространение в Redis (RESP3 поддерживает msgpack), Fluentd и различных игровых движках.

Конвертировать из .MSGPACK

Конвертировать в .MSGPACK

Связанные форматы

Связанные термины