MessagePack
MessagePack est un format efficace de sérialisation binaire, similaire à JSON mais plus compact, avec un support multilingue, utilisé pour le RPC et le cache.
Objectif
Fournir une sérialisation plus petite et plus rapide que JSON pour le RPC et le cache à haute performance.
Mécanisme
Un marqueur de type à un octet distingue nil, bool, entiers, flottants, chaînes, tableaux d'octets, tableaux et cartes. Les petits entiers positifs/négatifs utilisent un fixint d'un octet ; les chaînes courtes utilisent fixstr. Il n'est pas auto-descriptif (un schéma ou une convention est nécessaire) mais plus compact que JSON.
Cas d’usage
- Valeurs sérialisées dans Redis
- RPC Thrift/MsgPack
- Communication de serveurs de jeux
- Échange de données embarquées
Exemples
- entrée
{"a":1}Output81 a1 61 01A map with one pair
Erreurs courantes
- The lack of a schema causes cross-language type mismatches
- Use an IDL or explicit type conventions
Termes associés
CBOR
CBOR (Concise Binary Object Representation) est une forme binaire de JSON, normalisée dans le RFC 8949, plus compacte et prenant en charge davantage de types de données. GLOSSAIRE
JSON
JSON (JavaScript Object Notation) est un format léger d'échange de données fondé sur les littéraux d'objets JavaScript, utilisant paires clé-valeur et tableaux. GLOSSAIRE
Protocol Buffers
Protocol Buffers est le format de sérialisation binaire indépendant du langage de Google ; il exige un schéma .proto et est plus compact et plus sûr par types que JSON/XML. GLOSSAIRE
Outils associés
Décodeur MessagePack
MessagePack Decode — outil 100% côté client. Décode le binaire MessagePack réel (entrée hex ou base64 détectée automatiquement) en JSON formaté. Spécification officielle complète : fixints, str/bin/array/map (fix + 8/16/32), ext (fixext1-16, ext8/16/32), float32/64, uint/int 8-64. Confidentialité d'abord, sans aller-retour serveur. OUTIL
Encodeur MessagePack
MessagePack Encode — outil 100% côté client. Encode le JSON en binaire MessagePack réel, compatible au niveau binaire (aligné sur les comportements par défaut de msgpack-python) : formes entières les plus courtes, familles str/bin/array/map, types d'extension via $ext. Les clés de map conservent l'ordre d'insertion. Sortie hex (par défaut) ou base64. Confidentialité d'abord, sans aller-retour serveur. OUTIL