この記事では、標準の encoding/binary パッケージを使ってカスタムフォーマットに従ってバイナリエンコーディングする方法と、その仕組みについて解説します。 はじめに プログラム上で扱うデータ構造をネットワークやファイルに書き込む際は、何らかのフォーマットに従って自己完結したバイト列へとエンコードする必要があります。 プロセス間でデータをやりとりする場合は通常、言語非依存な標準化されたフォーマットを利用します。 しかし、多くの標準化されたフォーマットは冗長すぎる傾向にあります。Protocol BufferやApache Thriftはバイナリエンコーディング形式なので、テキストフォーマットと比べるとはるかにサイズを小さく出来ますが、これらは専用のスキーマを定義することが必須です。一つのプロセスからしかアクセスしないようなケースなど、Go言語特有のフォーマットでエンコードしたくな