Format Atlas

Datos

¿Qué es MessagePack?

MessagePack es un formato binario para serializar valores similares a JSON. Puede representar enteros, cadenas, datos binarios, listas y mapas, y también define valores de extensión y marcas de tiempo. No es texto: se lee y escribe con una biblioteca compatible. El significado de los datos y la conversión de tipos también pueden depender de las convenciones de cada aplicación.

.msgpack · .mpkSerialización binaria de datos estructurados

Cuándo elegir este formato

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

Cuándo evitar este formato

  • Datos que se deban inspeccionar o editar directamente como texto
  • Integraciones donde se desconoce cómo interpreta la otra parte los tipos o las extensiones

Usos habituales

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

Características

  • Codifica nil, booleanos, enteros, decimales, cadenas, datos binarios, listas y mapas
  • Los tipos de extensión pueden transportar valores propios de una aplicación
  • Define un tipo de extensión para marcas de tiempo

Ventajas y desventajas

Ventajas

  • Representa en binario estructuras similares a JSON
  • Admite bytes y extensiones que JSON no ofrece directamente

Desventajas

  • No se puede leer en un editor de texto normal
  • Hace falta un decodificador compatible para interpretar los bytes
  • Las diferencias al manejar extensiones o tipos propios de una aplicación pueden alterar el significado

Abrir y convertir

Cómo abrirlo

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.

Cómo convertirlo

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.

Precauciones

  • La especificación define la representación de bytes, no los nombres de campos ni el significado funcional de la aplicación.
  • Las aplicaciones de envío y recepción deben acordar los códigos de tipo de extensión y el significado de su contenido.
  • Para calcular hashes o firmas sobre datos equivalentes, acuerda reglas deterministas de serialización, incluido el orden de las claves de mapas.

Preguntas frecuentes

¿MessagePack es un formato de compresión?

No. Serializa datos estructurados en binario. La compresión puede aplicarse aparte para transmitirlos o guardarlos.

¿MessagePack maneja exactamente los mismos valores que JSON?

Admite estructuras básicas similares a JSON y también datos binarios y extensiones. Al convertir a JSON hay que decidir cómo representar estos valores adicionales.

Formatos relacionados

Comparar

Referencias y especificaciones