Format Atlas

Comparar

CBOR vs MessagePack

CBOR y MessagePack serializan valores similares a JSON en binario. CBOR normaliza etiquetas y reglas de codificación determinista; MessagePack ofrece codificación compacta de objetos generales.

¿Qué formato deberías elegir?

Considera CBOR cuando un protocolo requiera etiquetas estandarizadas por IETF o codificación determinista. Elige MessagePack si priman bibliotecas y aplicaciones existentes. Prueba rangos numéricos, extensiones y comportamiento entre implementaciones.

Adecuado para CBOR

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

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

Adecuado para MessagePack

Serializar datos similares a JSON en binario · Intercambiar datos estructurados entre aplicaciones compatibles

  • Codificar en binario listas, mapas y valores básicos similares a JSON
  • Intercambiar extensiones y marcas de tiempo entre bibliotecas compatibles

Información básica

CampoCBORMessagePack
Extensión.cbor.msgpack, .mpk
Tipo MIMEapplication/cborapplication/octet-stream
Usos habitualesIntercambiar datos estructurados en dispositivos y redes con recursos limitados · Representar datos en COSE y protocolos IoTSerializar datos similares a JSON en binario · Intercambiar datos estructurados entre aplicaciones compatibles
Cómo abrirLé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.Léelo con una biblioteca o un decodificador compatible con MessagePack. Para inspeccionarlo, usa la notación de diagnóstico o una vista similar a JSON y comprueba cómo se muestran los datos binarios y las extensiones.
Exportar o convertirAl 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.Al convertir a JSON, los datos binarios y las extensiones pueden necesitar listas, cadenas o envoltorios propios, ya que JSON estándar no tiene equivalentes directos. Para convertir en ambos sentidos, prueba datos reales, rangos numéricos, marcas de tiempo, claves de mapas y tipos de extensión.

Elegir según el uso

Representar datos similares a JSON en formato binario compacto

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

CBOR

Usar etiquetas estándar o propias de una aplicación para indicar el significado

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

CBOR

Codificar en binario listas, mapas y valores básicos similares a JSON

Serializar datos similares a JSON en binario · Intercambiar datos estructurados entre aplicaciones compatibles

MessagePack

Intercambiar extensiones y marcas de tiempo entre bibliotecas compatibles

Serializar datos similares a JSON en binario · Intercambiar datos estructurados entre aplicaciones compatibles

MessagePack

Punto clave 1

CBOR define enteros, bytes, matrices, mapas y etiquetas en RFC 8949. MessagePack define enteros, cadenas, binarios, matrices, mapas y tipos de extensión definidos por la aplicación.

Más sobre las diferencias

Punto clave 2

CBOR especifica requisitos de codificación determinista útiles para firmas o hashes coherentes. En MessagePack, la aplicación quizá deba acordar orden de claves y convenciones de extensión.

Más sobre las diferencias

Más sobre las diferencias

Elige según el protocolo y su ecosistema; no des por hecho que uno siempre es más pequeño o rápido. Define el mapeo de etiquetas, extensiones, claves, números y valores opcionales y prueba datos reales.

  • Las etiquetas CBOR identifican semánticas de valores y RFC 8949 describe codificación determinista. Las extensiones MessagePack incluyen códigos de tipo y bytes definidos por la aplicación.
  • No comparten codificación binaria, aunque representen datos similares. Un decodificador de uno no necesariamente lee el otro.
  • La conversión puede cambiar anchuras numéricas, tipos de claves, etiquetas o extensiones. Define mapeos y prueba conversiones de ida y vuelta.

Preguntas frecuentes

¿CBOR y MessagePack son compatibles a nivel binario?

No. Tienen codificaciones y modelos de extensión distintos; hace falta una conversión explícita o una definición de protocolo compartida.

Más información

Referencias y especificaciones