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
| Campo | CBOR | MessagePack |
|---|---|---|
| Extensión | .cbor | .msgpack, .mpk |
| Tipo MIME | application/cbor | application/octet-stream |
| Usos habituales | Intercambiar datos estructurados en dispositivos y redes con recursos limitados · Representar datos en COSE y protocolos IoT | Serializar datos similares a JSON en binario · Intercambiar datos estructurados entre aplicaciones compatibles |
| Cómo abrir | 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. | 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 convertir | 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. | 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
CBORUsar 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
CBORCodificar en binario listas, mapas y valores básicos similares a JSON
Serializar datos similares a JSON en binario · Intercambiar datos estructurados entre aplicaciones compatibles
MessagePackIntercambiar extensiones y marcas de tiempo entre bibliotecas compatibles
Serializar datos similares a JSON en binario · Intercambiar datos estructurados entre aplicaciones compatibles
MessagePackPunto 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 diferenciasPunto 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 diferenciasMá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.