CBOR (Concise Binary Object Representation en anglais) est un format d'échange de données informatiques d'utilisation générale pouvant être utilisé pour le stockage ou le transfert de données. C'est un format binaire de sérialisation de données dont les types sont inspirés du JSON permettant de représenter des structures de données simples et des tableaux associatifs, et d'étendre le format à d'autres types. L'objectif de ce format est de produire une forme binaire concise et extensible sans négociation de version de format.

CBOR
Caractéristiques
Extension
.cbor
Type MIME
application/cbor[1]
Version initiale
Type de format
sérialisation d'informations
Norme
RFC 8949[2]
Site web
(en) cbor.ioVoir et modifier les données sur Wikidata

Spécification

modifier

La spécification du CBOR[4] est disponible dans la RFC 8949[2].

Principes

modifier

Les types sont regroupés en 8 types majeurs dont le numéro est codé sur 3 bits :

Les 5 bits restant[5] du premier octet sont utilisés pour indiquer soit la valeur (si elle est comprise entre 0 et 23) ou le nombre d'octets qui suivent :

  • de 0 à 23, il s'agit de la représentation de la valeur ou de la longueur pour les chaînes et les tableaux simples ou associatifs,
  • de 24 à 27, il s'agit du nombre d'octets qui suivent (24 = 1 octet, 25 = 2 octets, 26 = 4 octets, 27 = 8 octets) contenant la valeur ou la taille,
  • de 28 à 30, valeurs réservées pour un usage futur,
  • selon le type majeur, la valeur 31 peut être réservée pour indiquer le début ou la fin d'une structure de taille indéterminée à l'avance.

Les types composés (tableaux simples, tableaux associatifs, chaînes de caractères ou d'octets) peuvent être encodés en spécifiant le nombre d'éléments avant le contenu, ou bien en mode non déterminé à l'avance en utilisant une valeur spéciale indiquant la fin.

Extensibilité

modifier

Le type majeur étiquette permet d'étendre le format en indiquant quelle est l'interprétation à donner à l'item qui suit. Par exemple, le tag 0 précède une chaîne de caractères représentant une date et une heure au format standard. Il existe des tags pour les UUID, les données au format Base64, les fractions, les expressions régulières, l'absence de valeur, etc.

L'assignation des numéros fait l'objet d'un enregistrement de l'IANA[6].

Implémentations

modifier

Différentes bibliothèques implémentent le format CBOR[7]. Il existe également des outils relatifs à ce format, notamment pour valider les données au format CBOR[8].

Références

modifier
  1. (en) « Media Types », sur IANA, 6 décembre 2020 (consulté le 6 décembre 2020)
  2. a et b (en) Request for comments no 8949
  3. (en) « CBOR - Concise Binary Object Representation », sur cbor.io (consulté le 6 décembre 2020)
  4. (en) « Specification Version 1.0 », sur cbor.io (consulté le 6 décembre 2020)
  5. (en) « RFC8949 section 3 », sur datatracker.ietf.org (consulté le 1er février 2022)
  6. (en) « Concise Binary Object Representation (CBOR) Tags », sur iana.org (consulté le 6 décembre 2020)
  7. (en) « Implementations », sur cbor.io (consulté le 6 décembre 2020)
  8. (en) « Tools », sur cbor.io (consulté le 6 décembre 2020)

📚 Artikel Terkait di Wikipedia

Passe sanitaire européen

bibliographie sur l'Union européenne Concise Binary Object Representation ou représentation concise d'objet binaire. CBOR Object Signing and Encryption ou signature

Python (langage)

Python : Apprendre la programmation de façon claire, concise et efficace [« Fluent Python: Clear, concise and effective programming. Éd. O'Reilly »], Éditions

Trou noir

Trimble, « The quest for collapsed/frozen stars in single-line spectroscopic binary systems », Proceedings of the International Astronomical Union, vol. 11

Test du canard

1080/0163660X.2011.588169, lire en ligne [PDF]) : « Blithe generalizations, binary thinking, and fear-mongering […] concomitant failure to make […] differentiations