CBHCompressKit 1.0.2

CBHCompressKit 1.0.2

Chris Huxtable 维护。



CBHCompressKit

release pod licence coverage

CBHCompressKit 提供了 CBHCompressorCBHDecompressor,它们提供了压缩 NSData 的简单方法。它们支持单次调用和流压缩。此外,CBHCompressKit 提供了一个 NSData 分类,以使单次调用压缩更加简单。

支持的算法

  • LZ4:一种高速压缩算法。
  • LZMA:一种具有高压缩比率的算法。
  • ZLib:一种平衡的平台间压缩算法格式。
  • LZFSE:一种平衡的、仅适用于 Apple 的压缩算法。

使用

大多数用例只需要使用 NSData 分类。

示例

使用 LZ4 压缩 NSData

NSData *data = /* some data */
NSData *compressed = [data compressUsingLZ4];

使用 LZ4 解压缩 NSData

NSData *compressed = /* some compressed data */
NSData *data = [compressed decompressUsingLZ4];

使用 LZMA 压缩 NSData

NSData *data = /* some data */
NSData *compressed = [data compressUsingLZMA];

使用 LZMA 解压缩 NSData

NSData *compressed = /* some compressed data */
NSData *data = [compressed decompressUsingLZMA];

使用 ZLib 压缩 NSData

NSData *data = /* some data */
NSData *compressed = [data compressUsingZLib];

使用 ZLib 解压缩 NSData

NSData *compressed = /* some compressed data */
NSData *data = [compressed decompressUsingZLib];

使用 LZFSE 压缩 NSData

NSData *data = /* some data */
NSData *compressed = [data compressUsingLZFSE];

使用 LZFSE 解压缩 NSData

NSData *compressed = /* some compressed data */
NSData *data = [compressed decompressUsingLZFSE];

更复杂的示例,例如使用流。

示例

压缩流

id io = /* an object that returns data in chunks */

CBHCompressAlgorithm algorithm = CBHCompressAlgorithm_LZMA;
NSData *compressed = [CBHCompressor compressUsingAlgorithm:algorithm inBlock:^(CBHCompressor *compressor) {
	while ( [io hasMoreData] )
	{
		[compressor appendData:[io data]];
	}
}];

解压缩流

id io = /* an object that returns data in chunks */

CBHCompressAlgorithm algorithm = CBHCompressAlgorithm_LZMA;
NSData *decompressed = [CBHDecompressor decompressUsingAlgorithm:algorithm inBlock:^(CBHDecompressor *decompressor) {
	while ( [io hasMoreData] )
	{
		[decompressor appendData:[io data]];
	}
}];

许可

CBHCompressKit可在ISC许可下使用。