LZ4库兼容性问题:java和IOS

时间:2019-02-28 18:01:29

标签: java ios swift compression lz4

我想在IOS端使用LZ4压缩数据,并想在Java端解压缩数据。

我将LZ4 compressionstream compression method用于IOS,将jpountz()用于Java。

在解压缩时在Java端失败。 (看起来LZ4标头在两个平台上都不同。)

请帮助!

如果不可能的话,您能推荐适用于JAVA和IOS的任何可互操作的LZ4库吗?

1 个答案:

答案 0 :(得分:1)

用于IOS的LZ4和来自jpountz的LZ4都使用自己的标头封装数据。 由于这些标头不同,因此它们无法互相读取。

您将必须了解每种标头格式,并在两者之间实现某种形式的翻译层。标头固定好后,其余的有效负载(压缩数据本身)应该是可读的。

另一种可能性是使用符合official LZ4 frame format的其他LZ4库。 LZ4主页维护着list of compliant codecs,其中之一是Java版本。

C参考版本可以在iOS上使用。它是便携式的,并且通常与Objective-C兼容。使用lz4frame.h使用官方框架格式进行封装。