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
| Campo | CBOR | MessagePack |
|---|---|---|
| Extensão | .cbor | .msgpack, .mpk |
| Tipo MIME | application/cbor | application/octet-stream |
| Usos comuns | Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT | Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis |
| Como abrir | Leia 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 converter | Na 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
CBORUsar 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
CBORCodificar 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
MessagePackTrocar extensões e timestamps entre bibliotecas compatíveis
Serializar dados semelhantes a JSON em binário · Trocar dados estruturados entre aplicativos compatíveis
MessagePackPonto 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çasPonto 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çasMais 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.