I would like to store data in a compressed format between various applications (some in Python, some in Java, etc.) in such a way that:
- the producer application can choose from among several formats (e.g. gzip/zstd/zlib/brotli)
- the consumer application has all the information it needs to uncompress the data
Once the data is uncompressed, all applications know how to deal with the resulting information.
Is there a common/standard container format which includes the compression algorithm type? (e.g. prepending the compressed data with a MIME type in ASCII) Or do the compressed data from most methods already contain a header and magic number that allow the compression type to be determined?