.msgpack
Data
MessagePack
MessagePackはJSONに似たコンパクトなバイナリシリアライゼーションフォーマットですが、より小さく高速です。JSONと同じデータ型(マップ、配列、文字列、数値、ブーリアン、null)にバイナリ拡張を加えてサポートし、Redis、Fluentd、多くのリアルタイムシステムで使用されています。
MIMEタイプ
application/x-msgpack
種類
バイナリ
圧縮
無劣化
メリット
- + Smaller and faster than JSON with no schema required
- + Drop-in JSON replacement — same data model
- + Implementations in 50+ programming languages
デメリット
- − Not human-readable in binary form
- − No schema validation — same weakness as JSON
- − Less widely adopted than JSON or Protobuf
.MSGPACKを使うタイミング
JSONが遅すぎるまたは大きすぎる場合にMessagePackを使用してください。リアルタイムAPI、キャッシュ、サービス間通信、組み込みシステムに適しています。
技術的詳細
MessagePackは型プレフィックスバイトの後に値を配置してデータをエンコードします。小さな整数は1バイト、文字列は長さプレフィックス付き、マップはキー・バリューペアを使用します。拡張型によりタイムスタンプなどのカスタムデータが可能です。
歴史
古橋貞之は2008年に日本でMessagePackを作成しました。スキーマ不要でJSONのドロップインバイナリ代替としてのシンプルさと、50以上の言語での実装により人気を博しました。