TL;DR 要素数が分からず、メモリに乗り切らない可能性がある配列をシリアライズする必要があったので、フォーマットとして CBOR を採用した。 Protocol Buffers1 や Ion, MessagePack, BSON などの主要なバイナリフォーマットで配列を扱う場合、要素数またはバイト長を先頭などに記述する必要があるため、メモリに乗り切らず要素数が簡単には分からない配列を(単純には)シリアライズすることができない CBORは要素数不明の配列を表現する手段がある Java/Kotlinの場合、jackson の jackson-dataformats-binaryを利用してストリームパーサ等を実装することにより、データすべてをメモリに乗せずにシリアライズ・デシリアライズすることができる jackson-dataformats-binary ではシリアライザ等の実装を JSON