MessagePack Codec
MessagePack Binär-Serialisierungsformat kodieren und dekodieren
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
Byte-Viewer
Geben Sie gültige JSON-Daten ein, um sie als MessagePack zu kodieren
Container-Längenkodierung
- Compact: Verwendet minimale Bytes (fixarray/fixmap bei ≤15 Elementen)
- Explicit 16-bit: Verwendet immer 2-Byte Länge (array16/map16 Format)
- Explicit 32-bit: Verwendet immer 4-Byte Länge (array32/map32 Format)
Klicken um JSON-Beispiel einzufügen
Kodiertes Ergebnis
Geben Sie JSON-Daten ein und klicken Sie auf Kodieren, um MessagePack zu generieren
Byte-Viewer
Kodierungsstatistik
MessagePack Datentyp-Referenz
| Typname | Formatbyte-Bereich | Beschreibung |
|---|---|---|
| Positiver FixInt | 0x00-0x7F | Ganzzahlen von 0 bis 127 (ein Byte) |
| Negativer FixInt | 0xE0-0xFF | Ganzzahlen von -32 bis -1 (ein Byte) |
| FixMap | 0x80-0x8F | Maps mit 0-15 Schlüssel-Wert-Paaren |
| FixArray | 0x90-0x9F | Arrays mit 0-15 Elementen |
| FixStr | 0xA0-0xBF | Zeichenketten mit 0-31 Bytes Länge |
| Nil | 0xC0 | Repräsentiert null/nil Wert |
| Boolean | 0xC2-0xC3 | True (0xc3) oder False (0xc2) |
| Binär | 0xC4-0xC6 | Rohe Binärdaten (bin8/bin16/bin32) |
| Erweiterung | 0xC7-0xC9, 0xD4-0xD8 | Anwendungsdefinierte Typen mit Typcode |
| Gleitkomma | 0xCA-0xCB | 32-Bit oder 64-Bit Gleitkommazahlen |
| Vorzeichenlose Ganzzahl | 0xCC-0xCF | 8/16/32/64-Bit vorzeichenlose Ganzzahlen |
| Vorzeichenbehaftete Ganzzahl | 0xD0-0xD3 | 8/16/32/64-Bit vorzeichenbehaftete Ganzzahlen |
| Zeichenkette | 0xD9-0xDB | UTF-8 Zeichenketten (str8/str16/str32) |
| Array | 0xDC-0xDD | Arrays mit 16-Bit oder 32-Bit Länge |
| Map | 0xDE-0xDF | Maps 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-0x7F | Positiver Fixint (0-127, Wert im Byte) |
| 0x80-0x8F | Fixmap (0-15 Paare, Anzahl in unteren 4 Bits) |
| 0x90-0x9F | Fixarray (0-15 Elemente, Anzahl in unteren 4 Bits) |
| 0xA0-0xBF | Fixstr (0-31 Bytes, Länge in unteren 5 Bits) |
| 0xC0-0xDF | Nil, Boolean, bin, ext, float, int Typen |
| 0xE0-0xFF | Negativer 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.
- 30-50% kleiner als JSON
- Native Unterstützung für Binärdaten
- Schnellere Serialisierung und Parsing
- Typsicher mit unterschiedlichen Ganzzahltypen
- 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 |
|---|---|
| -1 | Zeitstempel (offiziell) |
| 0-127 | Anwendungsdefinierte Typen |
Verwandte Tools
CBOR Codec
CBOR Binärformat kodieren und dekodieren mit JSON-Konvertierung, Hex-Viewer und semantischen Tags für IoT-Entwicklung
JSON-Formatierer
Formatieren und validieren Sie JSON-Daten für verbesserte Lesbarkeit und Debugging
Base64-Kodierer/Dekodierer
Schnelles Kodieren und Dekodieren von Base64-Strings mit Unterstützung für Text- und Dateikonvertierung
Protocol Buffers Tool
Online Protocol Buffers Encoder/Decoder. Parsen Sie .proto-Schemata, kodieren Sie JSON in Binär oder dekodieren Sie Binär in JSON