我有一个Node/ExpressJS服务器,它的客户端软件只能访问用于de/压缩的"compress“(LZW)算法。
据我所知,Node12.X zlib库不支持LZW。npm中似乎也没有任何模块在大于几百字节的内容上以快速、通用的方式处理LZW。
有没有人知道如何在节点服务器上高效、理想地使用LZW?Zlib中的东西与LZW兼容吗?我的用例是用于几十千字节的数据。
所有东西都在Docker中,所以我可以在主机上安装ncompress,并使用child_process直接调用它,但这似乎很复杂。
发布于 2021-07-17 22:09:04
您可以在没有任何外部库的情况下完成此操作。这是两个LZW编码和解码函数。
函数en(c) { var x= "charCodeAt",b,e= {},f= c.split(""),d= [],a= f,g= 256;for (b = 1;b< f.length;b++) c= fb,null != ea +c?A += c :(d.push(1 < a.length?)ea :ax), ea +c= g,g++,a=c;d.push(1 < a.length?ea :ax); 对于(b = 0;b< d.length;b++) db = String.fromCharCode(db); 返回d.join("");} 函数de (b ) { var a,e= {},d= b.split(""),c=f= d,g=c,h=o= 256;for (b= 1;b< d.length;b++) a= db.charCodeAt(0),a=h>a?db :ea?ea :f + c, g.push(a),c= a.charAt(0),eo =f+ c,o++,f= a;返回g.join("");}
请注意:这些函数只适用于字符串。来源:https://gist.github.com/JavaScript-Packer/bbf68a4dc0e1fd102221
https://stackoverflow.com/questions/58421959
复制相似问题