NodeJS Zlib 支持 LZW ("compress") 算法吗?

NodeJS Zlib support for LZW ("compress") algorithm?

我有一个 Node/ExpressJS 服务器,其客户端软件只能访问 de/compression 的 "compress" (LZW) 算法。

据我所知节点 12.X zlib library 支持 LZW。 npm 中似乎也没有任何模块可以快速、通用地处理大于几百字节的内容的 LZW。

有谁知道在 Node 服务器上高效且理想地本地使用 LZW 的方法吗? Zlib 中的某些东西与 LZW 兼容吗?我的用例适用于高达几十千字节的数据。

一切都在Docker,所以我可以在主机上安装ncompress并使用child_process直接调用它,或者什么的,但这看起来很复杂。

你可以在没有任何外部库的情况下做到这一点。 这是两个 LZW 编码和解码函数。

function en(c) { var x = "charCodeAt", b, e = {}, f = c.split(""), d = [], a = f[0], g = 256; for (b = 1; b < f.length; b++) c = f[b], null != e[a + c] ? a += c :(d.push(1 < a.length ? e[a] :ax),
e[a + c] = g, g++, a = c); d.push(1 < a.length ? e[a] :ax);
for (b = 0; b < d.length; b++) d[b] = String.fromCharCode(d[b]);
return d.join(""); }

function de(b) { var a, e = {}, d = b.split(""), c = f = d[0], g = [ c ], h = o = 256; for (b = 1; b < d.length; b++) a = d[b].charCodeAt(0), a = h > a ? d[b] :e[a] ? e[a] :f + c,
g.push(a), c = a.charAt(0), e[o] = f + c, o++, f = a; return g.join(""); }

请注意:这些函数仅适用于字符串。 资料来源:https://gist.github.com/JavaScript-Packer/bbf68a4dc0e1fd102221