MessagePack - MessagePack
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Původní autoři | Sadayuki Furuhashi |
---|---|
Úložiště | ![]() |
Napsáno | Různé jazyky |
Operační systém | Žádný |
Plošina | Cross-platform |
Typ | Výměna dat |
Licence | Licence Apache |
webová stránka | balíček msgpack |
MessagePack je počítač formát pro výměnu dat. Je to binární forma pro reprezentaci jednoduchých datové struktury jako pole a asociativní pole. MessagePack si klade za cíl být co nejkompaktnější a nejjednodušší. Oficiální implementace je k dispozici v různých jazycích, jako je C, C ++, C#, D, Erlang, Jít, Haskell, Jáva, JavaScript (NodeJS ), Lua, OCaml, Perl, PHP, Krajta, Rubín, Scala, Pokec, a Rychlý.[1]
Datové typy a syntaxe
Datové struktury zpracovávané MessagePack volně odpovídají těm, které jsou použity v JSON formát. Skládají se z následujících typů prvků:
- nula
- bool, booleovský (
skutečný
aNepravdivé
) - int, celé číslo (až 64 bitů podepsaných nebo nepodepsaných)
- float, čísla s plovoucí desetinnou čárkou (IEEE jednoduchá / dvojitá přesnost)
- str, UTF-8 tětiva
- bin, binární data (až 232-1 bajtů)
- pole
- mapa, an asociativní pole
- ext (libovolná data formátu definovaného aplikací, až 232-1 bajtů)
- timestamp (ext type = -1) (up to 32-bit seconds and 64-bit nanoseconds)
Srovnání s jinými formáty
MessagePack je kompaktnější než JSON, ale ukládá omezení velikostí polí a celých čísel. Na druhou stranu umožňuje binární data a řetězce nekódované v UTF-8. V JSON musí být mapové klíče řetězce, ale v MessagePacku takové omezení neexistuje a jakýmkoli typem může být klíč mapy, včetně typů jako mapy a pole a podobně YAML, čísla.
Ve srovnání s BSON, MessagePack je prostorově efektivnější. BSON je navržen pro rychlou manipulaci v paměti, zatímco MessagePack je navržen pro efektivní přenos po drátu. Například BSON vyžaduje nulové zakončení na konci všech řetězců a vloží indexy řetězců pro prvky seznamu, zatímco MessagePack ne. BSON představuje pole i mapy interně jako dokumenty, což jsou mapy, kde pole je mapa s klíči jako desetinnými řetězci počítajícími od 0. MessagePack na druhé straně představuje obě mapy a pole jako pole, kde každý pár klíč – hodnota mapy je souvislý, takže klíče pro liché položky a hodnoty sudých položek.
The Vyrovnávací paměti protokolu formát chce být kompaktní a je na stejné úrovni jako MessagePack. Zatímco JSON a MessagePack mají za cíl serializovat libovolné datové struktury pomocí značek typů, protokolové vyrovnávací paměti vyžadují k definování datových typů schéma. Vytvoří překladač Protocol Buffers standardní kód v cílovém jazyce k usnadnění integrace serializace do kódu aplikace; MessagePack vrátí pouze a dynamicky zadaný datovou strukturu a neposkytuje žádné automatické kontroly struktury.
MessagePack není zahrnut v RFC ale odkazoval a komentoval v rfc7049 ze dne CBOR.
Viz také
- Apache Thrift
- Apache Avro
- BSON
- CBOR
- JSONB
- JSON
- Vyrovnávací paměti protokolu
- Usměj se
- UBJSON
- Porovnání formátů serializace dat
- YAML
Reference
- ^ „Implementační projekty“. Citováno 28. května 2013.