1个不稳定版本
0.1.0 | 2023年1月18日 |
---|
#614 在 压缩
9KB
146 行
顺序压缩
这是一个概念验证的、“玩具”压缩算法,它将匹配的字节序列表示为文本。
这使得字符串(如 aaaaaaaaaaaaaaaaaaaaaaaaaaa
)的压缩无与伦比,但对于更复杂的内容则不起作用。
例如,上面的字符串将被表示为 97x27
,其中97是字符 "a" 的UTF-8二进制表示。这种表示仅占用5个字节,而未压缩的字符串则占用27个字节。
基准测试
我将一个1GB的文件压缩成了一个由(不是二进制0)重复80亿次组成的字符串。这被压缩成字符串 0x8000000000
,这相当于大小减少了大约 9999999985%
相比之下,如果你尝试压缩此存储库中的 Cargo.toml
文件,它从 180 字节
增加到 977 字节
,这增加了 442.778%
的大小。
规范
每个压缩算法都需要一个规范 :)
- 压缩文件必须以UTF-8编码的纯文本文件表示。
- 每个字节序列都表示为一个整数,该整数代表字节,后跟字符
x
,然后是它被重复的次数。 - 每个序列由换行符分隔
由 Juliette Cordor 用 💗 制作