MessagePack |
辞書:通信用語の基礎知識 通信手順上編 (CPINFO) |
読み:メッセージパック |
外語:MessagePack |
品詞:商品名 |
バイナリ形式のコンテナーフォーマットの一つで、汎用のデータフォーマット。
|
概要 |
古橋貞之により開発された、効率的なバイナリ・シリアライズ・フォーマットである。
JSON風であるが、より高速でコンパクトを志向している。
例えば、boolean値のような小型の整数は1バイトに符号化され、小型になるよう工夫されている。
特徴 |
データ |
いくつかのプリミティブタイプとデータ構造(Raw、Map、List)を提供するフォーマットである。
MessagePackが持つ型は汎用の型なので、実際にプログラミング言語から用いる際には、それぞれの言語の型にマッピングして用いる。
つまり、データ構造(Raw、Map、List)については枠組みのみを定義し、その使い方については上位のレイヤー(アプリケーション)に委ねる方針となっており、このため応用が利きやすい。
文字列問題 |
Issue 121とは、文字列型が必要だという提案と、その後の議論である。
MessagePackは元々文字列とバイナリ列を区別しなかったため、この議論が生じた。
MessagePackでも、文字列自体はバイナリ列として扱うことが可能である。文字列は、フォーマットで対応するか、アプリケーションで処理するかの違いである。
この考え方の違いが、MessagePack陣営と、文字列型を要求する人たちとの間でのずれとなった。
MessagePackでも、Issue 121に対応するため、文字列型をフォーマットに追加するための議論や実装が進められた。追加するにしても、どのようなフォーマットとして、どのように後方互換性を維持するかが重要な問題となる。そして様々な言語に存在する実装が、その仕様変更に追従できるかも必要である。
そのさなか、第三者により、MessagePackをベースに、UTF-8による文字列型を定義したBinaryPackが作られた。BinaryPackは95% MessagePackだとされ、つまりいくらか互換性を欠いていることを自ら認めている。
それだけならまだしも、この第三者により作られたBinaryPackがI-DとしてIETFに提案され標準化されようとしたために、騒動を招いた。
MessagePackとしては、標準化されることは特に損はないため歓迎してはいるようだが、しかし文字列についてはまだ策定中の段階であり、文字列が異なるフォーマットで扱われるforkが標準化されるのは、MessagePackとしては迷惑である。
BinaryPackは、他のプロジェクトで必要だという理由でIETF標準化を急いでいるとされるが、提案中の仕様は、改良点がある一方で後方互換性が失われていることから、MessagePack側は反対を表明している。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |