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を使うことで、通信量を削減しレスポンスを高速化する実装例がよく見られます。
この用語をシェア
最終更新: