CoderTools

Códec MessagePack

Codifica y decodifica el formato de serialización binaria MessagePack

🔒 100% Procesamiento localLos datos que introduce se procesan completamente en su navegador. No se envían a ningún servidor.

Pegue datos MessagePack de respuestas API, archivos de registro o capturas de red

Clic para insertar datos de ejemplo

Resultado decodificado

Ingrese datos MessagePack y haga clic en Decodificar para ver resultados

Referencia de tipos de datos MessagePack

Nombre del tipo Rango de bytes de formato Descripción
FixInt positivo0x00-0x7FEnteros de 0 a 127 (un byte)
FixInt negativo0xE0-0xFFEnteros de -32 a -1 (un byte)
FixMap0x80-0x8FMaps con 0-15 pares clave-valor
FixArray0x90-0x9FArrays con 0-15 elementos
FixStr0xA0-0xBFCadenas de 0-31 bytes de longitud
Nil0xC0Representa valor null/nil
Booleano0xC2-0xC3True (0xc3) o False (0xc2)
Binario0xC4-0xC6Datos binarios sin procesar (bin8/bin16/bin32)
Extensión0xC7-0xC9, 0xD4-0xD8Tipos definidos por aplicación con código de tipo
Flotante0xCA-0xCBNúmeros de punto flotante de 32 o 64 bits
Entero sin signo0xCC-0xCFEnteros sin signo de 8/16/32/64 bits
Entero con signo0xD0-0xD3Enteros con signo de 8/16/32/64 bits
Cadena0xD9-0xDBCadenas UTF-8 (str8/str16/str32)
Array0xDC-0xDDArrays con longitud de 16 o 32 bits
Map0xDE-0xDFMaps con longitud de 16 o 32 bits

Documentación del protocolo MessagePack

Qué es MessagePack

MessagePack es un formato de serialización binaria diseñado para el intercambio eficiente de datos. Creado por Sadayuki Furuhashi en 2008, empaqueta estructuras de datos similares a JSON en una representación binaria compacta que típicamente es 50% más pequeña que JSON mientras es más rápida de analizar. El formato es ampliamente adoptado en Redis, Fluentd y numerosos sistemas de comunicación en tiempo real donde el rendimiento importa.

Estructura de codificación binaria

MessagePack usa un esquema de codificación tipo-longitud-valor. El primer byte (byte de formato) determina el tipo de datos y puede contener el valor mismo para enteros pequeños y cadenas cortas. Valores más grandes usan bytes adicionales para longitud y carga útil. Este diseño permite a MessagePack codificar valores pequeños extremadamente eficiente mientras soporta estructuras de datos grandes.

Byte de formato Significado
0x00-0x7FFixint positivo (0-127, valor en byte)
0x80-0x8FFixmap (0-15 pares, cuenta en 4 bits inferiores)
0x90-0x9FFixarray (0-15 elementos, cuenta en 4 bits inferiores)
0xA0-0xBFFixstr (0-31 bytes, longitud en 5 bits inferiores)
0xC0-0xDFTipos Nil, booleano, bin, ext, float, int
0xE0-0xFFFixint negativo (-32 a -1)

Comparación MessagePack vs JSON

Ambos formatos representan el mismo modelo de datos pero optimizan para diferentes escenarios. MessagePack prioriza tamaño compacto y velocidad de análisis, haciéndolo ideal para sistemas de alto rendimiento. JSON prioriza legibilidad humana y compatibilidad universal en todas las plataformas.

Ventajas de MessagePack
  • 30-50% más pequeño que JSON
  • Soporte nativo de datos binarios
  • Serialización y análisis más rápidos
  • Seguro en tipos con tipos enteros distintos
Ventajas de JSON
  • Legible y editable por humanos
  • Soporte universal de navegador y lenguaje
  • Depuración y registro más fáciles

Aplicaciones comunes

  • Serialización de datos Redis y caché
  • Protocolos de comunicación en tiempo real (juegos, chat)
  • Agregación y reenvío de logs Fluentd
  • Frameworks RPC (MessagePack-RPC)
  • Aplicaciones móviles y embebidas con restricciones de ancho de banda

Tipos de extensión

MessagePack soporta tipos de extensión definidos por aplicación. Cada extensión tiene un código de tipo (entero de -128 a 127) y carga útil binaria. Extensiones estándar comunes incluyen timestamp (tipo -1), que almacena segundos y nanosegundos para representación precisa del tiempo.

Código de tipo Uso común
-1Timestamp (oficial)
0-127Tipos definidos por aplicación

Menú Rápido

Sin herramientas recientes