Pakiet wiadomości

Pakiet wiadomości
Oryginalni autorzy Sadayuki Furuhashi
Magazyn
Napisane w Różne języki
System operacyjny Każdy
Platforma Międzyplatformowe
Typ Wymiana danych
Licencja Licencja Apache
Strona internetowa msgpack.org _

MessagePack to format wymiany danych komputerowych . Jest to forma binarna służąca do reprezentowania prostych struktur danych, takich jak tablice i tablice asocjacyjne . MessagePack ma być tak kompaktowy i prosty, jak to tylko możliwe. Oficjalna implementacja jest dostępna w różnych językach, takich jak C , C++ , C# , D , Erlang , Go , Haskell , Java , JavaScript ( NodeJS ), Lua , OCaml , Perl , PHP , Python , Ruby , Scala , Smalltalk i Swift .

Typy danych i składnia

Struktury danych przetwarzane przez MessagePack luźno odpowiadają tym używanym w formacie JSON . Składają się z następujących typów elementów:

  • zero
  • bool, boolean ( prawda i fałsz )
  • int, liczba całkowita (do 64 bitów ze znakiem lub bez znaku)
  • float, liczby zmiennoprzecinkowe (IEEE pojedyncza/podwójna precyzja)
  • str, ciąg UTF-8
  • bin, dane binarne (do 2 32 − 1 bajtów)
  • szyk
  • mapa, tablica asocjacyjna
  • ext (dowolne dane w formacie zdefiniowanym przez aplikację, do 2 32 − 1 bajtów)
  • znacznik czasu (typ ext = −1) (do 64-bitowych sekund i 32-bitowych nanosekund)

Porównanie z innymi formatami

MessagePack jest bardziej zwarty niż JSON , ale nakłada ograniczenia na rozmiary tablic i liczb całkowitych. Z drugiej strony pozwala na dane binarne i łańcuchy zakodowane w formacie innym niż UTF-8. W JSON klucze map muszą być łańcuchami, ale w MessagePack nie ma takiego ograniczenia i kluczem mapy może być każdy typ, w tym typy takie jak mapy i tablice oraz, jak YAML , liczby .

W porównaniu do BSON , MessagePack zajmuje mniej miejsca. BSON jest przeznaczony do szybkiej manipulacji w pamięci, podczas gdy MessagePack jest przeznaczony do wydajnej transmisji przewodowej. Na przykład BSON wymaga terminatorów o wartości null na końcu wszystkich ciągów i wstawia indeksy ciągów dla elementów listy, podczas gdy MessagePack tego nie robi. BSON reprezentuje wewnętrznie zarówno tablice, jak i mapy jako dokumenty, które są mapami, gdzie tablica jest mapą z kluczami jako ciągami dziesiętnymi liczonymi od 0. MessagePack z drugiej strony reprezentuje zarówno mapy, jak i tablice jako tablice, gdzie każda para klucz-wartość mapy jest ciągła, tworząc klucze elementów nieparzystych, a wartości elementów parzystych.

Format Protocol Buffers ma być kompaktowy i dorównuje MessagePack. Jednak podczas gdy JSON i MessagePack mają na celu serializację dowolnych struktur danych za pomocą znaczników typu, bufory protokołów wymagają schematu do zdefiniowania typów danych. Kompilator Protocol Buffers tworzy szablonowy kod w języku docelowym, aby ułatwić integrację serializacji z kodem aplikacji; MessagePack zwraca tylko dynamicznie wpisaną strukturę danych i nie zapewnia automatycznego sprawdzania struktury.

  MessagePack jest wymieniony w dokumencie RFC 7049 firmy CBOR .

Zobacz też

Linki zewnętrzne