4 个稳定版本
1.2.1 | 2024年8月11日 |
---|---|
1.2.0 | 2024年8月9日 |
1.1.0 | 2024年8月5日 |
1.0.0 | 2024年8月4日 |
在 文本处理 中排名 84
每月下载量 811
30KB
719 行
最小化器
最小化器是一个程序,可以将文件的大小最小化,同时仍满足设定的要求。
它非常适合最小化用于快速应用的文件,每次迭代小于一秒。
目前它只能在 Linux 上运行,需要 nightly rust 编译器。
如何使用
- 为 Linux 安装 nightly rust,克隆仓库并构建项目
cargo install --path .
或者只需使用 crates.io 编译它
cargo install minimizer
- 运行最小化器
minimizer --input-file input.txt --output-file output.txt --command "echo {}" --attempts 300 --broken-info "BROKEN"
以获取每个参数的信息,阅读源代码或运行
minimizer --help
测试它
echo "ABCDEFGH" > input.txt
echo "gABCDEFFGH" >> input.txt
echo "BCDERF" >> input.txt
echo "ABCD" >> input.txt
echo "BDCE" >> input.txt
运行
minimizer --input-file input.txt --output-file output.txt --command "cat {}" --attempts 300 --broken-info "AB"
可能会生成 output.txt 文件,其中包含内容
AB
由于算法不是确定的,所以结果可能不总是相同
使用更大的尝试次数将增加获得更小输出文件的机会,并启用依赖于逐行/字节/字符删除的附加模式。
它是如何工作的
开始时,最小化器读取文件并检查该文件是否返回预期输出。
如果是,则应用程序继续运行。
首先,应用程序检查文件是否包含有效的 utf-8 字符,如果包含,则启用两种附加模式,这些模式基于行和字符。
每个模式(在行、字符和字节的 Vec<> 上工作)在开始时都尝试从文件的开头/结尾删除项目。
后来在循环中,从中间/开始/结尾随机删除元素,以检查文件是否仍然返回预期输出。
为什么
我只是需要这个 - 我怀疑它对任何人都没有用。
许可证
MIT 许可证
依赖项
~2-10MB
~80K SLoC