MessagePack — комп’ютерний формат обміну даними, призначений для двійкового представлення простих структур даних наподобі масивів і асоциативних масивів. MessagePack aims to be as compact and simple as possible. Офіційна реалізація існує для багатьох мов програмування, таких як C, C++, C#, D, Erlang, Go, Haskell, Java, JavaScript, Lua, OCaml, Perl, PHP, Python, Ruby, Scala і Smalltalk.

Структури даних і синтаксис Data structures processed by MessagePack loosely correspond to those used in JSON format. Вони включають перелічені нижче типи елементів:

значення відсутнє (nil) булеві дані, можливі значення яких є фальш (false) і істина (true) цілі числа розміром до 64 бітів числа з плаваючою комою - IEEE одинарної і подвійної точності байтові масиви, які використовуються для представлення стрічкових і двійкових даних переліки чи масиви асоціативні масиви, мапи чи словники

Порівняння з іншими форматами MessagePack більш щільний ніж JSON, але має обмеження по розмірах масивів і цілих чисел. З іншого боку, він підтримує бінарні дані і стрічки, кодування яких відмінне від UTF-8.

У порівнянні з BSON, MessagePack щильніше пакує дані. Наприклад BSON потребує закінчення всіх стрічок нульовим байтом та вставлення стрічкових індексів для переліків, але у то же час MessagePack не робить цього. Також MessagePack забезпечує щільніше представлення невеликих цілих чисел, коротких переліків і асоціативних масивів.

Див. також JSON BSON Protocol Buffers Apache Thrift Apache Avro UBJSON

Примітки

Посилання Офіційний вебсайт специфікація MessagePack формату