r-lyeh-archived / bundle

:package: Bundle, an embeddable compression library: DEFLATE, LZMA, LZIP, BZIP2, ZPAQ, LZ4, ZSTD, BROTLI, BSC, CSC, BCM, MCM, ZMOLLY, ZLING, TANGELO, SHRINKER, CRUSH, LZJB and SHOCO streams in a ZIP file (C++03)(C++11)
zlib License
629 stars 89 forks source link

from wikipedia #1

Open r-lyeh-archived opened 10 years ago

r-lyeh-archived commented 10 years ago

MPQs used in Blizzard's games generally contain a game's data files, including graphics, sounds, and level data. The format's capabilities include compression, encryption, file segmentation, extensible file metadata, cryptographic signature and the ability to store multiple versions of the same file for internationalization and platform-specific differences. MPQ archives can use a variety of compression algorithms which may also be combined.

r-lyeh-archived commented 10 years ago

current features:

missing:

d-led commented 9 years ago

these would are all be nice features. A cryptographic signature is for me one of the most interesting ones. cryptopp?

r-lyeh-archived commented 9 years ago

I think cryptopp exceeds the size of an amalgamated solution. Maybe something smaller like https://github.com/well-typed/libedsign would fit it better.

On the other hand, and to avoid feature creep, I think bundle is ok as a compression library as it is right now. Maybe it could be wiser to add some of these features into another library on top of bundle. In same way than bundler is an archiver on top of bundle: https://github.com/r-lyeh/bundler

d-led commented 9 years ago

Yeah, I agree, there is no need to add features at any cost to an independent component. An encryption/signing can have a similar interface as bundle and thus a component in itself, but usable together with bundle in an aggregating component. As for libedsign, it looks suspicious to me. The crypto textbooks warn against using something that isn't widely used. As for cryptopp, it seems to be quite modular and not that complicated to build, hence a precise selection of it could be amalgamated, perhaps.