C的多算法压缩库

时间:2013-05-02 23:07:57

标签: c lossless-compression

我希望我的程序能够使用zlib,lzma,lzo和bzip2压缩算法。

是否有适用于C的压缩库,可以使用多种算法(如libmcrypt支持多种加密模式和算法)进行模拟?

期待这样的事情:

struct compressor c;
universal_compressor_init(&c, "lzma", 7 /* compression level */);
universal_compressor_compress(&c, inputbuf, inputsize, outputbuf, &outputsize);
universal_compressor_save_state(&c, statebuf, &statesize);

注意:它不是关于zip / rar / 7z / tar / cpio和其他存档格式,而是关于压缩原始缓冲区。考虑压缩网络协议或随机访问压缩块设备(如cloop)。

2 个答案:

答案 0 :(得分:3)

LibArchive符合您的要求。

从介绍:

  

libarchive库的特点:

     
      
  • 支持各种存档和压缩格式。
  •   
  • 强大的自动格式检测,包括存档/压缩组合,例如tar.gz.   ...
  •   
编辑:处理原始流(至少直到他们从libarchive中拆分libfilter),考虑使用Boost::iostreamslibbu++(仅在GitHub上找到)

答案 1 :(得分:0)

我建议 7-zip http://www.7-zip.org/sdk.html)。压缩速度和尺寸都没有找到任何可以击败它的东西。