Vergleichen
CBOR vs. MessagePack
CBOR und MessagePack serialisieren JSON-ähnliche Werte binär. CBOR standardisiert Protokoll-Tags und deterministische Kodierungsregeln; MessagePack bietet kompakte Kodierung allgemeiner Objekte.
Welches Format sollten Sie wählen?
CBOR eignet sich für Protokolle mit IETF-standardisierten Tags oder deterministischer Kodierung. Wählen Sie MessagePack, wenn vorhandene Anwendungen und Bibliotheken wichtiger sind. Testen Sie Zahlenbereiche, Erweiterungen, Normalisierung und Implementierungsunterschiede.
Geeignet für CBOR
Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen
- JSON-ähnliche Daten kompakt binär darstellen
- Standard- oder anwendungsspezifische Tags verwenden, um Werte zu kennzeichnen
Geeignet für MessagePack
JSON-ähnliche Daten binär serialisieren · Strukturierte Daten zwischen kompatiblen Anwendungen austauschen
- JSON-artige Arrays, Maps und Grundwerte binär codieren
- Erweiterungswerte und Zeitstempel zwischen kompatiblen Bibliotheken austauschen
Grundlegende Informationen
| Merkmal | CBOR | MessagePack |
|---|---|---|
| Dateiendung | .cbor | .msgpack, .mpk |
| MIME-Typ | application/cbor | application/octet-stream |
| Häufige Verwendung | Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen | JSON-ähnliche Daten binär serialisieren · Strukturierte Daten zwischen kompatiblen Anwendungen austauschen |
| Öffnen | Lesen Sie die Datei mit einer CBOR-Bibliothek oder einem Decoder und prüfen Sie die Diagnose-Notation oder eine JSON-ähnliche Ansicht. Achten Sie auf Werte ohne direktes JSON-Gegenstück, etwa Tags und Bytefolgen. | Lesen Sie die Datei mit einer MessagePack-fähigen Bibliothek oder einem Decoder. Zur Prüfung eignen sich Diagnose-Notation oder eine JSON-ähnliche Ansicht. Achten Sie darauf, wie Binärdaten und Erweiterungen angezeigt werden. |
| Exportieren oder konvertieren | Bei der Umwandlung in JSON benötigen Bytefolgen und getaggte Werte möglicherweise werkzeugspezifische Darstellungen. Beachten Sie bei Signaturen, Hashes oder Cache-Schlüsseln die vereinbarten Protokollregeln, etwa die deterministische Codierung nach RFC 8949. | Bei einer Umwandlung in JSON benötigen Binärdaten und Erweiterungen möglicherweise Arrays, Zeichenfolgen oder werkzeugspezifische Hüllen, da Standard-JSON keine direkten Entsprechungen hat. Testen Sie für Hin- und Rückumwandlungen echte Werte, Zahlenbereiche, Zeitstempel, Map-Schlüssel und Erweiterungstypen. |
Nach Einsatzzweck wählen
JSON-ähnliche Daten kompakt binär darstellen
Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen
CBORStandard- oder anwendungsspezifische Tags verwenden, um Werte zu kennzeichnen
Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen
CBORJSON-artige Arrays, Maps und Grundwerte binär codieren
JSON-ähnliche Daten binär serialisieren · Strukturierte Daten zwischen kompatiblen Anwendungen austauschen
MessagePackErweiterungswerte und Zeitstempel zwischen kompatiblen Bibliotheken austauschen
JSON-ähnliche Daten binär serialisieren · Strukturierte Daten zwischen kompatiblen Anwendungen austauschen
MessagePackWichtiger Punkt 1
CBOR definiert Ganzzahlen, Bytefolgen, Arrays, Maps und Tags in RFC 8949. MessagePack definiert Ganzzahlen, Zeichenfolgen, Binärdaten, Arrays, Maps und anwendungsspezifische Erweiterungstypen.
Unterschiede im DetailWichtiger Punkt 2
CBOR spezifiziert Anforderungen für deterministische Kodierung, etwa für konsistente Signaturen oder Hashes. Bei MessagePack muss eine Anwendung möglicherweise Schlüsselreihenfolge und Erweiterungskonventionen festlegen.
Unterschiede im DetailUnterschiede im Detail
Wählen Sie nach Protokoll und Ökosystem, nicht nach der Annahme, ein Format sei immer kleiner oder schneller. Legen Sie Zuordnungen für Tags, Erweiterungen, Map-Schlüssel, Zahlen und optionale Werte fest und testen Sie reale Nutzdaten.
- CBOR-Tags kennzeichnen die Semantik von Werten; RFC 8949 beschreibt deterministische Kodierungsregeln. MessagePack-Erweiterungen tragen anwendungsspezifische Typkennungen und Bytefolgen.
- Auch bei ähnlichen Daten sind die Binärkodierungen verschieden. Ein Decoder für das eine Format kann nicht ohne Weiteres das andere lesen.
- Eine Konvertierung kann Zahlenbreite, Schlüsseltyp, Tags oder Erweiterungswerte ändern. Definieren Sie Zuordnungen und testen Sie echte Implementierungen im Rundlauf.
Häufige Fragen
Sind CBOR und MessagePack binärkompatibel?
Nein. Kodierungen und Erweiterungsmodelle unterscheiden sich; erforderlich ist eine explizite Konvertierung oder eine gemeinsame Protokolldefinition.