Codec CBOR / MessagePack
Entrée JSON
Sortie hexadécimale
Détails techniques
Comment fonctionne le convertisseur CBOR & MessagePack
Ce que fait l’outil
Cet outil encode des données JSON en formats binaires CBOR (Concise Binary Object Representation) ou MessagePack, et décode des charges utiles binaires en JSON lisible par l’humain. Il affiche les octets hexadécimaux bruts à côté de la structure décodée, ce qui facilite l’inspection des encodages binaires compacts utilisés dans des environnements contraints. Les deux sens d’encodage prennent en charge les objets imbriqués, les tableaux et les types JSON standard.
Cas d’usage courants pour les développeurs
Les développeurs IoT utilisent cet outil pour inspecter des charges utiles CBOR issues de messages CoAP ou de jetons signés COSE sans écrire de code de désérialisation. Les ingénieurs backend déboguent des trames WebSocket encodées en MessagePack, des buffers du protocole Redis ou des charges utiles RPC en collant des dumps hexadécimaux et en visualisant le JSON décodé. Il est également utile pour comparer les tailles de charge utile entre JSON, CBOR et MessagePack afin de choisir le format de transport le plus efficace pour les systèmes à bande passante limitée.
Formats de données, types ou variantes
CBOR (RFC 8949) est un format binaire auto-descriptif conçu pour une petite taille de code et une petite taille de message, largement adopté dans des standards IoT comme LwM2M et FIDO2/WebAuthn. MessagePack est une sérialisation binaire similaire qui vise à être aussi compacte que possible tout en restant sans schéma, couramment utilisée par Redis, Fluentd et de nombreux frameworks RPC. Les deux formats sont plus compacts que JSON, mais sacrifient la lisibilité humaine au profit de l’efficacité.
Pièges courants et cas limites
CBOR prend en charge des types de données que JSON ne peut pas représenter nativement, tels que les chaînes d’octets, les tags et les conteneurs de longueur indéfinie — les faire transiter aller-retour via JSON fera perdre des informations de type. MessagePack distingue les octets bruts des chaînes UTF-8, que JSON regroupe en un seul type de chaîne. La précision des entiers peut différer : les deux formats prennent en charge des entiers de longueur arbitraire, mais le décodage en JavaScript peut perdre en précision au-delà de Number.MAX_SAFE_INTEGER.
Quand utiliser cet outil plutôt que du code
Utilisez cet outil dans le navigateur pour une inspection ponctuelle de charges utiles binaires capturées depuis le trafic réseau, pour déboguer des messages d’appareils IoT ou pour comparer rapidement les tailles d’encodage. Pour la sérialisation en production dans le code applicatif, utilisez des bibliothèques dédiées comme cbor2 (Python), cbor-x (Node.js) ou msgpack pour votre langage, qui gèrent le streaming, la validation de schéma et un mappage de types correct, ce qu’un outil navigateur ne peut pas fournir.