CBOR
CBOR (Concise Binary Object Representation) ist eine binäre Form von JSON, normiert in RFC 8949, kompakter und mit mehr Datentypen.
Zweck
Eine kompaktere binäre Kodierung als JSON für Szenarien mit begrenzter Bandbreite und begrenztem Speicher bieten.
Mechanismus
Jedes Datenelement beginnt mit einem Tag-Byte: Die oberen 3 Bits geben den Haupttyp (0-7), die unteren 5 Bits die Zusatzinformation. Die Haupttypen 0-2 sind vorzeichenlose Ganzzahlen, negative Ganzzahlen und Byte-Strings; 3 ist ein Text-String; 4-5 sind Arrays und Maps; 6 sind Tags (semantische Markierung); 7 sind Floats und Simple-Werte. Erweiterungs-Tags unterstützen Datumsangaben, URLs, Bignums und mehr.
Anwendungsfälle
- CoAP-IoT-Protokoll
- WebAuthn-Credential-Daten
- IPLD (das Datenmodell von IPFS)
- Sensordatenübertragung
Beispiele
- Eingabe
{"a":1}OutputA1 61 61 01CBOR encoding of a one-pair map
Häufige Fehler
- Confusing CBOR and MessagePack encoding details
- They differ; parse with each specification
Verwandte Begriffe
JSON
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat auf Basis von JavaScript-Objektliteralen, das Schlüssel-Wert-Paare und Arrays nutzt. GLOSSAR
MessagePack
MessagePack ist ein effizientes Binärserialisierungsformat, ähnlich wie JSON, aber kompakter, mit Unterstützung vieler Sprachen, verwendet für RPC und Caching. 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
CBOR-Dekodierer
CBOR Decode — reines Client-seitiges Tool. Dekodiert echtes CBOR-Binärformat (RFC 8949; Hex- oder Base64-Eingabe, automatisch erkannt) zu formatiertem JSON. Deckt alle Major Types 0-7 ab: alle Ganzzahlen, Byte-/Textstrings (inkl. unbestimmter Länge), Arrays, Maps, Tags (Bignum, Datumsangaben, URIs), Simple Values, Half/Single/Double Floats. Datenschutz zuerst, kein Server-Roundtrip. WERKZEUG
CBOR-Kodierer
CBOR Encode — reines Client-seitiges Tool. Kodiert JSON in echtes CBOR-Binärformat (RFC 8949), wire-kompatibel, mit deterministischer Kodierung (§4.2.1: kürzeste Ganzzahl/Float-Formen, Map-Schlüssel zuerst nach Länge, dann byteweise sortiert). Byte-Strings, Tags, Bignums und Simple Values über die Konventionen $bytes/$tag/$bignum/$simple. Ausgabe hex (Standard) oder base64. Datenschutz zuerst, kein Server-Roundtrip. WERKZEUG