Format Atlas

Comparar

CBOR vs MessagePack

CBOR e MessagePack serializam valores semelhantes a JSON em binário. CBOR padroniza tags de protocolo e regras de codificação determinística; MessagePack oferece codificação compacta de objetos gerais.

Qual formato você deve escolher?

Considere CBOR quando um protocolo exigir tags padronizadas pela IETF ou codificação determinística. Escolha MessagePack se a compatibilidade com aplicativos e bibliotecas existentes for prioridade. Teste intervalos numéricos, extensões e diferenças entre implementações.

Indicado para CBOR

Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT

  • Representar dados semelhantes a JSON em formato binário compacto
  • Usar tags padrão ou definidas pela aplicação para indicar significado

Indicado para MessagePack

Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis

  • Codificar em binário arrays, mapas e valores básicos semelhantes a JSON
  • Trocar extensões e timestamps entre bibliotecas compatíveis

Informações básicas

CampoCBORMessagePack
Extensão.cbor.msgpack, .mpk
Tipo MIMEapplication/cborapplication/octet-stream
Usos comunsTroca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoTSerializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis
Como abrirLeia com uma biblioteca ou decodificador CBOR e examine a notação de diagnóstico ou uma visualização semelhante a JSON. Confira como aparecem os valores sem equivalente direto em JSON, como tags e sequências de bytes.Leia com uma biblioteca ou decodificador compatível com MessagePack. Para inspecionar o conteúdo, use a notação de diagnóstico ou uma visualização semelhante a JSON e confira como dados binários e extensões são exibidos.
Exportar ou converterNa conversão para JSON, sequências de bytes e valores com tags podem exigir representações próprias da ferramenta. Para assinaturas, hashes ou chaves de cache, siga as regras acordadas pelo protocolo, como a codificação determinística da RFC 8949.Na conversão para JSON, dados binários e extensões podem exigir arrays, strings ou estruturas próprias, pois o JSON padrão não tem equivalentes diretos. Para converter nos dois sentidos, teste valores reais, limites numéricos, timestamps, chaves de mapas e tipos de extensão.

Escolha por finalidade

Representar dados semelhantes a JSON em formato binário compacto

Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT

CBOR

Usar tags padrão ou definidas pela aplicação para indicar significado

Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT

CBOR

Codificar em binário arrays, mapas e valores básicos semelhantes a JSON

Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis

MessagePack

Trocar extensões e timestamps entre bibliotecas compatíveis

Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis

MessagePack

Ponto principal 1

CBOR define inteiros, bytes, arrays, mapas e tags na RFC 8949. MessagePack define inteiros, strings, binários, arrays, mapas e tipos de extensão definidos pelo aplicativo.

Mais sobre as diferenças

Ponto principal 2

CBOR especifica requisitos de codificação determinística úteis para representações consistentes em assinaturas ou hashes. Em MessagePack, o aplicativo pode precisar definir a ordem das chaves e as convenções de extensão.

Mais sobre as diferenças

Mais sobre as diferenças

Escolha de acordo com o protocolo e o ecossistema, sem presumir que um seja sempre menor ou mais rápido. Defina o mapeamento de tags, extensões, chaves, números e valores opcionais e teste dados reais.

  • Tags CBOR identificam a semântica de valores e a RFC 8949 descreve requisitos de codificação determinística. Extensões MessagePack carregam identificadores de tipo e bytes definidos pelo aplicativo.
  • Os formatos não compartilham a codificação binária, mesmo quando representam dados parecidos. Um decodificador de um formato não deve ser presumido compatível com o outro.
  • A conversão pode alterar larguras numéricas, tipos de chave, tags ou extensões. Especifique os mapeamentos e teste ida e volta entre as implementações reais.

Perguntas frequentes

CBOR e MessagePack são compatíveis em nível binário?

Não. Eles têm codificações e modelos de extensão diferentes; é necessária conversão explícita ou uma definição de protocolo compartilhada.

Saiba mais

Referências e especificações