Erlang中的文本压缩

Muz*_*hua 4 database compression erlang cryptography memory-management

是否有Erlang的文本压缩库?使用非常长的字符串时,压缩字符数据可能是有利的.有没有人在Erlang中压缩文本或想办法?

我正在考虑使用该zip模块,但我没有使用文件,而是在内存中工作,如下所示:

compress(LargeText)->
    Binary = list_to_binary(LargeText),
    {ok,{_,Zipped}} = zip:zip("ZipName",[{"Name",Binary}],[memory]),
    Zipped.
Run Code Online (Sandbox Code Playgroud)

然后我会unzip在需要时将文本重新记忆.像这样:

{ok,[{"Name",Binary}]} = zip:unzip(Zipped,[memory]).
Run Code Online (Sandbox Code Playgroud)

我的Erlang应用程序应该是中间层的一部分,其中大文本可能必须传递到存储系统和从存储系统传出.存储系统用于存储大文本.要优化存储,需要在发送之前对其进行压缩.假设文本值类似于CLOBOracle数据库中的数据类型.我在想,如果我把拉链和拉链结合起来erlang:garbage_collect/0,我可以把它拉下来.

或者如果在Erlang中不可能,也许可以使用system callvia os:cmd({Some UNIX script})然后我会在Erlang中获取输出?如果有更好的方法,请展示它.

Mar*_*ler 8

Erlang有一个zlib模块,支持内存压缩和解压缩.