Skip to content
Latchkey

CBOR vs MessagePack: どのバイナリ形式?

CBORはリッチな型タグを備えたIETF標準のバイナリ形式(RFC 8949)であり、MessagePackは幅広いライブラリサポートを持つコンパクトで広く採用されたバイナリ形式です。

CBOR(RFC 8949)は標準化、タグによる拡張性、リソース制約デバイスでの利用のために設計されており、COSEやWebAuthnのようなプロトコルを支えています。MessagePackはそれより前から存在し、極めてコンパクトで、多くの言語にわたって非常に幅広いライブラリサポートを持ちます。CBORは標準化と拡張性で優れ、MessagePackは採用の広さと最小限のサイズで優れています。

CBORMessagePack
標準IETF RFC 8949事実上の仕様
拡張性リッチなタグ拡張型
採用強力 (COSE、IoT)非常に広い
サイズコンパクト非常にコンパクト
最適な用途標準、IoT幅広いライブラリサポート

ユースケースと標準

CBORは、IETF標準、セマンティックタグ、またはCOSE/WebAuthnやリソース制約のあるIoTとの整合性を必要とするユースケースに適しています。MessagePackは、正式な標準要件なしに、最も広く利用可能なライブラリと最小のpayloadを望むチームに適しています。

運用とCIへの適合性

どちらも言語をまたぐライブラリサポートを持つschema-freeのバイナリ形式です。Round-tripの相互運用テストがCIで実行され、より高速なマネージドrunnerが言語間のシリアライゼーションチェックを短縮します。

結論

リッチなタグとIoT/セキュリティのエコシステムへの適合性を備えたIETF標準が欲しいなら: CBOR。最も幅広いライブラリと最小限のサイズが欲しいなら: MessagePack。標準化はCBORに、採用の広さはMessagePackに有利です。

関連ガイド