CoderTools

MessagePack Codec

MessagePack Binär-Serialisierungsformat kodieren und dekodieren

🔒 100% Lokale VerarbeitungIhre eingegebenen Daten werden vollständig in Ihrem Browser verarbeitet. Es werden keine Daten auf einen Server hochgeladen.

Fügen Sie MessagePack-Daten aus API-Antworten, Protokolldateien oder Netzwerkaufzeichnungen ein

Klicken um Beispieldaten einzufügen

Dekodiertes Ergebnis

Geben Sie MessagePack-Daten ein und klicken Sie auf Dekodieren, um Ergebnisse zu sehen

MessagePack Datentyp-Referenz

Typname Formatbyte-Bereich Beschreibung
Positiver FixInt0x00-0x7FGanzzahlen von 0 bis 127 (ein Byte)
Negativer FixInt0xE0-0xFFGanzzahlen von -32 bis -1 (ein Byte)
FixMap0x80-0x8FMaps mit 0-15 Schlüssel-Wert-Paaren
FixArray0x90-0x9FArrays mit 0-15 Elementen
FixStr0xA0-0xBFZeichenketten mit 0-31 Bytes Länge
Nil0xC0Repräsentiert null/nil Wert
Boolean0xC2-0xC3True (0xc3) oder False (0xc2)
Binär0xC4-0xC6Rohe Binärdaten (bin8/bin16/bin32)
Erweiterung0xC7-0xC9, 0xD4-0xD8Anwendungsdefinierte Typen mit Typcode
Gleitkomma0xCA-0xCB32-Bit oder 64-Bit Gleitkommazahlen
Vorzeichenlose Ganzzahl0xCC-0xCF8/16/32/64-Bit vorzeichenlose Ganzzahlen
Vorzeichenbehaftete Ganzzahl0xD0-0xD38/16/32/64-Bit vorzeichenbehaftete Ganzzahlen
Zeichenkette0xD9-0xDBUTF-8 Zeichenketten (str8/str16/str32)
Array0xDC-0xDDArrays mit 16-Bit oder 32-Bit Länge
Map0xDE-0xDFMaps mit 16-Bit oder 32-Bit Länge

MessagePack Protokoll-Dokumentation

Was ist MessagePack

MessagePack ist ein binäres Serialisierungsformat, das für effizienten Datenaustausch entwickelt wurde. 2008 von Sadayuki Furuhashi erstellt, packt es JSON-ähnliche Datenstrukturen in eine kompakte binäre Darstellung, die typischerweise 50% kleiner als JSON ist und schneller geparst werden kann. Das Format wird in Redis, Fluentd und zahlreichen Echtzeit-Kommunikationssystemen eingesetzt, wo Leistung wichtig ist.

Binäre Kodierungsstruktur

MessagePack verwendet ein Typ-Länge-Wert-Kodierungsschema. Das erste Byte (Formatbyte) bestimmt den Datentyp und kann für kleine Ganzzahlen und kurze Zeichenketten den Wert selbst enthalten. Größere Werte verwenden zusätzliche Bytes für Länge und Nutzlast. Dieses Design ermöglicht es MessagePack, kleine Werte extrem effizient zu kodieren und gleichzeitig große Datenstrukturen zu unterstützen.

Formatbyte Bedeutung
0x00-0x7FPositiver Fixint (0-127, Wert im Byte)
0x80-0x8FFixmap (0-15 Paare, Anzahl in unteren 4 Bits)
0x90-0x9FFixarray (0-15 Elemente, Anzahl in unteren 4 Bits)
0xA0-0xBFFixstr (0-31 Bytes, Länge in unteren 5 Bits)
0xC0-0xDFNil, Boolean, bin, ext, float, int Typen
0xE0-0xFFNegativer Fixint (-32 bis -1)

MessagePack vs JSON Vergleich

Beide Formate repräsentieren das gleiche Datenmodell, optimieren aber für unterschiedliche Szenarien. MessagePack priorisiert kompakte Größe und Parsing-Geschwindigkeit, ideal für Hochdurchsatzsysteme. JSON priorisiert menschliche Lesbarkeit und universelle Kompatibilität auf allen Plattformen.

MessagePack Vorteile
  • 30-50% kleiner als JSON
  • Native Unterstützung für Binärdaten
  • Schnellere Serialisierung und Parsing
  • Typsicher mit unterschiedlichen Ganzzahltypen
JSON Vorteile
  • Menschlich lesbar und bearbeitbar
  • Universelle Browser- und Sprachunterstützung
  • Einfacheres Debugging und Logging

Häufige Anwendungen

  • Redis Datenserialisierung und Caching
  • Echtzeit-Kommunikationsprotokolle (Gaming, Chat)
  • Fluentd Log-Aggregation und Weiterleitung
  • RPC-Frameworks (MessagePack-RPC)
  • Mobile und eingebettete Anwendungen mit Bandbreitenbeschränkungen

Erweiterungstypen

MessagePack unterstützt anwendungsdefinierte Erweiterungstypen. Jede Erweiterung hat einen Typcode (Ganzzahl von -128 bis 127) und binäre Nutzlast. Häufige Standarderweiterungen umfassen Timestamp (Typ -1), der Sekunden und Nanosekunden für präzise Zeitdarstellung speichert.

Typcode Häufige Verwendung
-1Zeitstempel (offiziell)
0-127Anwendungsdefinierte Typen

Schnellmenü

Keine aktuellen Tools