Database Erlang中的文本压缩

Database Erlang中的文本压缩,database,memory-management,erlang,cryptography,compression,Database,Memory Management,Erlang,Cryptography,Compression,有Erlang的文本压缩库吗?当处理很长的字符串时,压缩字符数据可能是有利的。有没有人压缩过文本,或者想到用Erlang压缩文本的方法 我曾考虑使用zip模块,但我不使用文件,而是在内存中这样工作: compress(LargeText)-> Binary = list_to_binary(LargeText), {ok,{_,Zipped}} = zip:zip("ZipName",[{"Name",Binary}],[memory]), Zipped. 然后,

有Erlang的文本压缩库吗?当处理很长的字符串时,压缩字符数据可能是有利的。有没有人压缩过文本,或者想到用Erlang压缩文本的方法

我曾考虑使用
zip
模块,但我不使用文件,而是在内存中这样工作:

compress(LargeText)->
    Binary = list_to_binary(LargeText),
    {ok,{_,Zipped}} = zip:zip("ZipName",[{"Name",Binary}],[memory]),
    Zipped.
然后,当我需要时,我将
将文本解压回内存。像这样:

{ok,[{"Name",Binary}]} = zip:unzip(Zipped,[memory]).
我的Erlang应用程序应该是中间层的一部分,在中间层中,大文本可能必须通过存储系统进出。存储系统用于存储大文本。要优化存储,需要在发送之前对其进行压缩。假设文本值类似于Oracle数据库中的
CLOB
数据类型。我在想,如果我把拉链和erlang:garbage\u collect/0结合起来,我就能把它完成

或者如果在Erlang中不可能,也许可以通过
os:cmd({Some UNIX script})
使用
系统调用
,然后在Erlang中获取输出?如果有更好的方法,请显示它。

有一个在内存压缩和解压缩中支持的。

你可以考虑使用压缩,它比zip快很多,尤其是对于解压缩。

编辑
现在我用了很多,我很开心。它的代码美观易读,格式简单,维护良好,甚至比Snappy还要快。

我已经看过了。但可能认为它与
zip
模块没有太大区别,差别很大。请阅读文档。这就是你要找的机器人。它压缩和解压缩不使用zip格式且不包含文件名等信息的压缩流。您还可以阅读zlib手册()和zlib()的使用示例。