#byte #string #sequences #toy #complex #sequential #combine

seqcompress

一种将字节序列组合成更小字符串的玩具压缩算法

1个不稳定版本

0.1.0 2023年1月18日

#614压缩

MIT 许可证

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 用 💗 制作

无运行时依赖