问题标签 [lz4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4993 浏览

javascript - 在没有 Node.js 的 javascript 中使用 lz4 压缩

我正在尝试让 LZ4 解压缩以在纯 JavaScript 中工作客户端。

我找到了这个JavaScript 库,但它打算与 Node.js 一起使用。在同一个存储库中,我发现了一个理论上可以在浏览器中使用的库。问题是这样的库仍然需要 Node.js 缓冲区,因为我没有使用 Node.js 并且所有这些都发生在客户端(我在这里记录了一个错误以尝试获取一些如何使用它的指针)。

然后我寻找 Node.js 缓冲区的移植,并找到了这个存储库。问题是当我使用它时,我在 Chrome 和 Firefox 中都遇到了这个错误:

TypeError: this is not a typed array

我为此记录了这个错误报告。我觉得将这两个库结合起来我离在纯 JavaScript 中实现 lz4 解压不远了,但以前从未使用过 ArrayBuffer、Uint8Array 和 Node.js,我正在努力连接这些点。

我的问题:有没有人成功地用纯 JavaScript 解压 LZ4?有什么建议或指示吗?提前致谢。

0 投票
1 回答
9152 浏览

algorithm - LZ4压缩算法说明

来自维基百科的描述:

LZ4 算法将数据表示为一系列序列。每个序列都以一个字节标记开始,该标记分为两个 4 位字段。第一个字段表示要复制到输出的文字字节数。第二个字段表示要从已解码的输出缓冲区复制的字节数(0 表示 4 个字节的最小匹配长度)。任一位域中的值 15 表示长度较大,并且有一个额外的数据字节要添加到长度中。这些额外字节中的值 255 表示要添加另一个字节。因此,任意长度由一系列包含值 255 的额外字节表示。在文字字符串之后是标记和指示字符串长度所需的任何额外字节。后面是一个偏移量,指示输出缓冲区中开始复制的距离。匹配长度的额外字节(如果有)出现在序列的末尾

我完全不明白!有没有人有一个简单的方法来理解例子?例如,在上面的解释中,什么是文字字节,什么是匹配?当我们刚开始压缩时,我们如何才能有一个解码的输出缓冲区?什么长度?

这里的解释对我来说也是不可理解的。

一个简单的例子会很好,除非你有更好的解释方式。

0 投票
1 回答
25747 浏览

linux-kernel - 如何在 Linux 3.11 中使用 LZ4 压缩

LZ4 算法被包含在Linux 3.11 内核中

我可以在不安装其他软件包的情况下使用此算法压缩文件吗?

0 投票
2 回答
4087 浏览

java - 如何在 Java 中正确实现 LZ4、Snappy 或等效压缩技术?

我已经尝试将 Java 版本的 LZ4 实现到一种尝试从大型文本文件中搜索数据的搜索引擎类型的程序中。我只是压缩了输出流并将其存储到 txt 文件或没有名称的文件中。但是,我意识到所谓的压缩文件并没有减小大小,但它的大小甚至比原始文件还要大。

最后我不得不求助于 zip4j,因为它对我有用。

我想知道如何使用 LZ4 或 Snappy 的 jar 来正确压缩/解压缩?

另外,我如何使用这样的算法来压缩一个文件夹,里面有很多文件?

谢谢!

0 投票
3 回答
24634 浏览

compression - 如何在 lz4 中使用 tar?

如何使用 tar 并通过LZ4过滤存档?或者任何可用的工具?使用起来看起来很麻烦tar cvf folderABC.tar folderABC && lz4c -c0 folderABC.tar

PS:*nix环境

0 投票
1 回答
3193 浏览

hadoop - 在 Spark 中解压 LZ4 压缩数据

我在 HDFS 中有 LZ4 压缩数据,我正在尝试在 Apache Spark 中将其解压缩为 RDD。据我所知,JavaSparkContext从 HDFS 读取数据的唯一方法是textFile只读取 HDFS 中的数据。我遇到过有关的文章,CompressionCodec但它们都解释了如何将输出压缩到 HDFS,而我需要解压缩 HDFS 上已有的内容。

我是 Spark 的新手,所以如果我遗漏了一些明显的东西或者我的概念理解不正确,我会提前道歉,但如果有人能指出我正确的方向,那就太好了。

0 投票
0 回答
318 浏览

node.js - Node.js 缓冲区 + lz4 问题 - buffer.js:705 throw TypeError('value is out of bounds')

我的 node.js 脚本中有以下行会生成致命错误:

变量“logdata”包含我使用 http 请求参数创建的字符串。这是 lz4 的问题还是我创建缓冲区的方式?我该如何解决?错误信息如下:

谢谢,非常感谢!

0 投票
2 回答
4182 浏览

c - LZ4库解压数据上限大小估计

我正在使用LZ4库,并且在使用

我想估计最大解压缩数据大小。但我找不到反向功能

用它我可以确定解压数据的上限,提供给最后一个参数maxDecompressedSize,解压函数。

其他压缩库,例如snappy,提供了这样的功能。

如果我无法保存初始数据大小(压缩前),并且我不想对必须分配的缓冲区大小过于悲观,我该怎么办?

0 投票
0 回答
866 浏览

java - android 应用中的 LZ4 压缩库

如何在我的 android 应用程序中使用 LZ4 压缩库...

我面临的主要问题是当我尝试导出签名的应用程序包时,出现的错误是

警告:net.jpountz.util.UnsafeUtils:找不到引用的类 sun.misc.Unsafe

当我直接在我的设备中运行应用程序时,没有问题,只有当我尝试导出应用程序时才会出现此错误。

0 投票
0 回答
3631 浏览

python - LZ4 模块在 python 中无法识别

我在 Ubuntu 中成功安装了 LZ4,但在运行此命令时仍在 Python 中:

我收到错误 no module found 。