背景
- 複数ファイルを非圧縮 zip で一つのファイルにまとめたい
- 非圧縮 zip を, zlib や miniz など使わずに読みたい
- tar だとちょっとフォーマットがめんどい
仕様
ヘッダは 30 bytes です. compression method が 0 だと非圧縮です.
読み込むときは, central directory に当たったらパース終了と判定すればよいでしょう.
標準では 2GB までのサポートです. 2GB 以上の場合は ZIP64 flag で扱います.
サンプル
cnpy に npz(numpy npy データをまとめたもの. npz は圧縮もサポート) のロードとシリアライズサンプルコードがありますので参考になります.