Articulo de referencia

Paquete de mensajes

MessagePack es un formato de intercambio de datos informáticos . Es una forma binaria para representar estructuras de datos simples como arreglos y arreglos asociativos . Messag...

MessagePack es un formato de intercambio de datos informáticos . Es una forma binaria para representar estructuras de datos simples como arreglos y arreglos asociativos . MessagePack busca ser lo más compacto y simple posible. La implementación oficial está disponible en una variedad de lenguajes como C , C++ , C# , D , Erlang , Go , Haskell , Java , JavaScript ( NodeJS ), Lua , OCaml , Perl , PHP , Python , Ruby , Rust , Scala , Smalltalk y Swift . [ 1 ]

Tipos de datos y sintaxis

Las estructuras de datos procesadas por MessagePack se corresponden aproximadamente con las utilizadas en el formato JSON . Constan de los siguientes tipos de elementos:

  • nulo
  • bool, Booleano ( truey false)
  • int, entero (hasta 64 bits con o sin signo)
  • float, números de punto flotante (precisión simple/doble IEEE)
  • cadena , UTF-8
  • bin, datos binarios (hasta 2³²  − 1 bytes)
  • formación
  • mapa, una matriz asociativa
  • ext (datos arbitrarios de un formato definido por la aplicación, hasta 2³²  − 1 bytes)
  • marca de tiempo (tipo ext = −1) (hasta segundos de 64 bits y nanosegundos de 32 bits)

Comparación con otros formatos

MessagePack es más compacto que JSON , pero impone limitaciones en el tamaño de los arrays y los enteros. Por otro lado, permite datos binarios y cadenas que no sean UTF-8. En JSON, las claves de los mapas deben ser cadenas, pero MessagePack no tiene esa limitación, y cualquier tipo puede ser una clave de mapa, incluyendo tipos como mapas y arrays, y, al igual que YAML , números.

En comparación con BSON , MessagePack es más eficiente en cuanto al uso del espacio. BSON está diseñado para una manipulación rápida en memoria, mientras que MessagePack está diseñado para una transmisión eficiente a través de la red. Por ejemplo, BSON requiere terminadores nulos al final de todas las cadenas e inserta índices de cadena para los elementos de las listas, mientras que MessagePack no lo hace. BSON representa internamente tanto los arrays como los mapas como documentos, que son mapas, donde un array es un mapa con claves como cadenas decimales que comienzan en 0. MessagePack, por otro lado, representa tanto los mapas como los arrays como arrays, donde cada par clave-valor del mapa es contiguo, haciendo que los elementos impares sean claves y los elementos pares valores.

El formato Protocol Buffers ofrece un formato de transmisión significativamente más compacto que MessagePack, ya que no transmite nombres de campos. Sin embargo, mientras que JSON y MessagePack buscan serializar estructuras de datos arbitrarias con etiquetas de tipo, Protocol Buffers requiere un esquema para definir los tipos de datos. El compilador de Protocol Buffers crea código repetitivo en el lenguaje de destino para facilitar la integración de la serialización en el código de la aplicación; MessagePack solo devuelve una estructura de datos con tipado dinámico y no proporciona comprobaciones automáticas de estructura.

MessagePack se menciona en el RFC 7049 de CBOR . 

Véase también

Referencias

  1. "Idiomas" . Consultado el 4 de enero de 2022 .
  • Sitio web oficialEdita esto en Wikidata
  • Especificación del formato MessagePack
Obtenido de " https://en.wikipedia.org/w/index.php?title=MessagePack&oldid=1358554109 "