本文へスキップ

MessagePackとは?

めっせーじぱっく

JSONと互換性のあるデータ構造をバイナリ形式でシリアライズする、高速・省サイズのデータ交換フォーマットです。

MessagePackは、JSONと同等のデータ構造(オブジェクト配列・数値・文字列・真偽値・null)をバイナリ形式でエンコードするシリアライズフォーマットです。「JSONよりも小さく、速く」を目標に設計されており、ネットワーク通信やファイル保存における帯域・容量の削減に有効です。

MessagePackとJSONの主な違いは次のとおりです。JSONはテキスト形式で人間が読めますが、バイト数が大きくパース処理も重くなります。MessagePackはバイナリ形式のため人間には直接読めませんが、データサイズをJSONの約50〜80%に削減でき、シリアライズ・デシリアライズ速度も大幅に向上します。

MessagePackが活用される場面としては以下が挙げられます。

  • マイクロサービス間の内部API通信(gRPCのProtocol Buffersと競合)
  • Redisなどのキャッシュストアへのデータ保存
  • ゲームのリアルタイム通信(低レイテンシが重要な場面)
  • モバイルアプリのAPIレスポンス最適化

C、Java、Python、Ruby、Go、JavaScriptなど50以上の言語向けのライブラリが公開されており、既存のJSONベースの設計を置き換えやすい特長があります。Protocol BuffersやBSONと並んで、バイナリシリアライズフォーマットの代表格のひとつです。

使い方・例文

WebSocketを使ったリアルタイムチャットアプリで、サーバーとクライアント間のメッセージ送受信にJSONの代わりにMessagePackを使うことで、通信量を削減しレスポンスを高速化する実装例がよく見られます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語