MessagePack
MessagePack ist ein effizientes Binärserialisierungsformat, ähnlich wie JSON, aber kompakter, mit Unterstützung vieler Sprachen, verwendet für RPC und Caching.
Zweck
Serialisierung bereitzustellen, die kleiner und schneller als JSON ist, für leistungsstarkes RPC und Caching.
Mechanismus
Ein Ein-Byte-Typmarker unterscheidet nil, bool, Ganzzahlen, Floats, Strings, Byte-Arrays, Arrays und Maps. Kleine positive/negative Ganzzahlen nutzen Ein-Byte-Fixint; kurze Strings nutzen Fixstr. Es ist nicht selbstbeschreibend (ein Schema oder eine Konvention ist nötig), aber kompakter als JSON.
Anwendungsfälle
- Serialisierte Redis-Werte
- Thrift/MsgPack-RPC
- Spieleserver-Kommunikation
- Embedded-Datenaustausch
Beispiele
- Eingabe
{"a":1}Output81 a1 61 01A map with one pair
Häufige Fehler
- The lack of a schema causes cross-language type mismatches
- Use an IDL or explicit type conventions
Verwandte Begriffe
CBOR
CBOR (Concise Binary Object Representation) ist eine binäre Form von JSON, normiert in RFC 8949, kompakter und mit mehr Datentypen. GLOSSAR
JSON
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat auf Basis von JavaScript-Objektliteralen, das Schlüssel-Wert-Paare und Arrays nutzt. GLOSSAR
Protocol Buffers
Protocol Buffers ist Googles sprachneutrales Binärserialisierungsformat; es erfordert eine .proto-Schemadefinition und ist kompakter und typsicherer als JSON/XML. GLOSSAR
Verwandte Tools
MessagePack-Dekodierer
MessagePack Decode — reines Client-seitiges Tool. Dekodiert echtes MessagePack-Binärformat (Hex- oder Base64-Eingabe, automatisch erkannt) zu formatiertem JSON. Vollständige offizielle Spezifikation: Fixints, str/bin/array/map (fix + 8/16/32), ext (fixext1-16, ext8/16/32), float32/64, uint/int 8-64. Datenschutz zuerst, kein Server-Roundtrip. WERKZEUG
MessagePack-Kodierer
MessagePack Encode — reines Client-seitiges Tool. Kodiert JSON in echtes MessagePack-Binärformat, wire-kompatibel (an die msgpack-python-Standards angelehnt): kürzeste Ganzzahlformen, str/bin/array/map-Familien, Erweiterungstypen über $ext. Map-Schlüssel behalten die Einfügereihenfolge. Ausgabe hex (Standard) oder base64. Datenschutz zuerst, kein Server-Roundtrip. WERKZEUG