HatchZip:磁盘快满时也能解压大压缩包,解压过程压缩包越解越小

HatchZip 是一款 Rust 写的开源解压工具,解决的是磁盘快满时的老难题:180 GB 的游戏下载解压成 200 GB,传统工具需要同时留出压缩包和输出两份空间(380 GB),HatchZip 只需要 200 GB 出头——因为它从压缩包尾部向前解压,每解完一部分就把那部分从压缩包里截掉,解压过程压缩包越解越小。

实测数据(项目方在 220 MiB 磁盘上跑 200 MB 数据):ZIP 包 unzip 在第 6 个文件时就空间不足,HatchZip 全部解完且字节一致;7z 多实心块 0.64 秒解完;tar 0.12 秒解完。解压前它会先算空间是否够用,全程留安全余量;中途按 Ctrl+C、崩溃甚至断电都能断点续解。格式支持 ZIP、7z、tar、.tar.gz 和分卷包;有桌面版(Windows、macOS Apple Silicon/Intel、Linux)和命令行版,hatchzip check 可以先算出精确的空间需求。

要注意两个限制:7-Zip 默认单实心块的 7z 没法提前释放空间,HatchZip 会提前拒绝而不是硬解;另外解压即销毁原压缩包,下载源不可靠时建议先用 --verify-first 全量校验。安全方面,文件落盘并刷盘后才截掉压缩包对应部分,CRC-32 逐文件校验,路径逃逸、重复条目等恶意压缩包会被直接拒绝。

同类文件工具可以看看站里之前发的 Filee:255 种格式全离线转换,一个管格式转换、一个管磁盘见底时的解压,刚好互补。

项目地址:GitHub xevrion/hatchzip(Apache-2.0 协议,仓库创建于 10 月 21 日,近日在 Trendar 涨星榜上每天新增上千星)。

来源:GitHub @xevrion,原文:https://github.com/xevrion/hatchzip

请登录后发表评论

    没有回复内容