Format Atlas

Datos

¿Qué es CBOR?

CBOR (Concise Binary Object Representation) es un estándar del IETF para codificar en binario elementos como números, cadenas, listas y mapas. Busca facilitar implementaciones y mensajes compactos sin dejar de ser extensible, y puede representar datos similares a JSON. No es un formato de texto: para leerlo o escribirlo se necesita una herramienta o biblioteca compatible con CBOR.

.cborCodificación binaria compacta de datos

Cuándo elegir este formato

  • Representar datos similares a JSON en formato binario compacto
  • Usar etiquetas estándar o propias de una aplicación para indicar el significado

Cuándo evitar este formato

  • Datos que las personas deban leer y editar directamente como texto
  • Mezclar perfiles o reglas de codificación CBOR sin acordarlo entre los extremos

Usos habituales

  • Intercambiar datos estructurados en dispositivos y redes con recursos limitados
  • Representar datos en COSE y protocolos IoT

Características

  • RFC 8949 define application/cbor y la extensión .cbor
  • Representa enteros, números de coma flotante, cadenas de bytes, listas y mapas
  • Las etiquetas pueden añadir significado, por ejemplo a fechas o valores propios de una aplicación

Ventajas y desventajas

Ventajas

  • La codificación compacta resulta útil en entornos con recursos limitados
  • Un decodificador genérico puede leer la estructura básica sin compartir antes un esquema fijo

Desventajas

  • El contenido binario es difícil de inspeccionar en un editor de texto
  • Un mismo dato puede tener varias codificaciones; firmas y hashes pueden requerir reglas deterministas
  • CBOR Sequence concatena elementos y no equivale a un único elemento CBOR; usa otro tipo multimedia

Abrir y convertir

Cómo abrirlo

Léelo con una biblioteca o un decodificador CBOR y consulta su notación de diagnóstico o una vista similar a JSON. Comprueba cómo se muestran los valores sin equivalente directo en JSON, como las etiquetas y las cadenas de bytes.

Cómo convertirlo

Al convertir a JSON, las cadenas de bytes y los valores con etiquetas pueden necesitar representaciones propias de la herramienta. Para firmas, hashes o claves de caché, sigue las reglas acordadas por el protocolo, como la codificación determinista de RFC 8949.

Precauciones

  • Un elemento CBOR y una CBOR Sequence son cosas distintas. Si se concatenan varios elementos, confirma que el receptor espera una secuencia según RFC 8742.
  • Sigue la definición del protocolo para el significado de las etiquetas y los perfiles de aplicación.
  • application/cbor corresponde a un solo elemento CBOR. Comprueba la especificación receptora para el encuadre y el contenido esperado.

Preguntas frecuentes

¿CBOR es un formato de compresión?

No. CBOR codifica estructuras de datos en binario; no es un algoritmo de compresión de uso general.

¿CBOR puede representar los mismos datos que JSON?

Puede representar valores similares a JSON, pero también incluye cadenas de bytes y etiquetas, que JSON no tiene. Para convertirlos hay que decidir cómo representar esos valores.

Formatos relacionados

Comparar

Referencias y especificaciones