コンテンツへスキップ
uencoder

CBOR

CBOR(Concise Binary Object Representation)は JSON のバイナリ版であり、RFC 8949 で標準化され、よりコンパクトでより多くのデータ型をサポートする。

目的

帯域やストレージが制約される場面に向けて、JSON よりコンパクトなバイナリ符号化を提供する。

メカニズム

すべてのデータ項目は先頭のタグバイトで始まり、上位 3 ビットがメジャータイプ(0〜7)、下位 5 ビットが追加情報を表す。メジャータイプ 0〜2 は符号なし整数、負の整数、バイト列、3 はテキスト文字列、4〜5 は配列とマップ、6 はタグ(意味的標識)、7 は浮動小数点数と単純値である。拡張タグにより日付、URL、多倍長整数などをサポートする。

ユースケース

  • CoAP IoT プロトコル
  • WebAuthn のクレデンシャルデータ
  • IPLD(IPFS のデータモデル)
  • センサーデータの転送

例

  • 入力
    {"a":1}
    Output
    A1 61 61 01

    CBOR encoding of a one-pair map

よくあるエラー

Confusing CBOR and MessagePack encoding details
They differ; parse with each specification

関連用語

関連ツール

References