MessagePack

読み:メッセージパック
外語:MessagePack 英語
品詞:商品名

バイナリ形式のコンテナーフォーマットの一つで、汎用のデータフォーマット。

目次

古橋貞之により開発された、効率的なバイナリ・シリアライズ・フォーマットである。

JSON風であるが、より高速でコンパクトを志向している。

例えば、boolean値のような小型の整数は1バイトに符号化され、小型になるよう工夫されている。

データ

いくつかのプリミティブタイプとデータ構造(Raw、Map、List)を提供するフォーマットである。

MessagePackが持つ型は汎用の型なので、実際にプログラミング言語から用いる際には、それぞれの言語の型にマッピングして用いる。

つまり、データ構造(Raw、Map、List)については枠組みのみを定義し、その使い方については上位のレイヤー(アプリケーション)に委ねる方針となっており、このため応用が利きやすい。

文字列問題

Issue 121

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側は反対を表明している。

用語の所属
コンテナーフォーマット
関連する用語
BinaryPack

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club