fcorbelli/catpaq
GitHub: fcorbelli/catpaq
catpaq 是一款由 zpaqfranz 驱动的 ZPAQ 归档图形界面管理工具,支持归档浏览、版本回溯、文件提取与创建等全流程操作。
Stars: 33 | Forks: 0
# catpaq
## 由 zpaqfranz 驱动的 ZPAQ 归档 GUI 工具。浏览版本、提取文件、测试完整性并添加新内容——无需安装
### 与大多数其他 ZPAQ 归档 GUI 相比,它可以创建归档,而不仅仅是提取其内容,其操作方式在概念上类似于 7-Zip、WinRAR 等工具的界面。
 _本项目的名称是为了纪念我心爱的猫咪 Sharon Stone(小名 Frufru)。我非常想念她。 :sob:_
ZPAQ 是目前最好的压缩格式之一——极高的压缩率、支持增量备份、完整的版本历史记录。
问题在于:它没有官方的 GUI。
**catpaq** 解决了这个问题。
将其放在 `zpaqfranz` 旁边,打开一个归档,你就可以开始了。
## 功能
- **浏览任何 ZPAQ 归档** — 查看所有文件和文件夹,以及完整的版本历史记录
- **时光机** — 在归档快照之间导航,并提取文件的任何历史版本
- **完整性测试** — 验证你的归档,提供实时进度和 ETA,结果直接显示在日志中
- **添加文件** — 从内置的文件浏览器中选择文件和文件夹,并将它们添加到任何归档中
- **提取** — 提取单个文件、文件夹或所有内容,支持 GUI 目标选择器
- **加密归档** — 支持 zpaq 的 AES 加密以及 zpaqfranz 的 Franzen 密码保护
- **过滤与搜索** — 在大型归档中快速查找文件
- **哈希计算** — 支持 CRC32、SHA256、BLAKE3、XXH3 等,并支持单个文件时复制到剪贴板
- **便携** — 无需安装程序,无需写入注册表,无需管理员权限(除非你需要设置文件关联)
- **跨平台** — 可在 Windows、Linux 和 macOS 上运行(_开发中_)
## 环境要求
Catpaq 是一个前端工具:它需要 `zpaqfranz` 可执行文件来完成实际工作,并且(在 Windows 上)它会提示为你自动下载。
BTW `zpaqfranz` [官方仓库](https://github.com/fcorbelli/zpaqfranz)
## 安装说明
无需安装程序。
1. 从 [Releases 页面](../../releases) 下载最新版本
2. 将归档解压到你喜欢的任意文件夹
3. 将 `zpaqfranz`(在 Windows 上为 `zpaqfranz.exe` 和 `zpaqfranz.dll`)放在同一文件夹中
4. 运行 `catpaq.exe` (Windows) 或 `catpaq` (Linux/macOS)
**技术细节。**
`catpaq` 的每个版本都在内部硬编码了 `zpaqfranz.exe` 和 `zpaqfranz.dll` 的 SHA-256 哈希值。这样做是为了限制代码“注入”的可能性。因此,必须注意保持 `catpaq.exe`、`zpaqfranz.exe` 和 `zpaqfranz.dll` 对齐(在运行它们的目录中)。
未来我可能会改变这一策略,例如,我可能会为 Windows 生成单一的 `.EXE` 文件。然而,我还必须考虑向不同系统(Mac、Linux)的可移植性,在这些系统上我还没有进行足够的实验。
这些是首批发布版本;相关工作会随着时间的推移不断完善。
(Windows) 要直接从你的文件管理器中打开 `.zpaq` 文件,请以管理员身份运行 catpaq 并使用 **Settings → Associate .zpaq and .zpaq.franzen**。
## 截图
| 归档浏览器 | 完整性测试 | 文件浏览器 |
|---|---|---|
|  |  |  |
## 工作原理
Catpaq 是 `zpaqfranz` 之上的一个 GUI 层。
每一个操作——列表、提取、测试、添加——都会转换为在后台运行的 `zpaqfranz` 命令。
输出会实时流式传输到 Log 选项卡中,因此你始终可以准确看到正在发生什么。
**Add 选项卡**是一个内置的文件浏览器:浏览你的磁盘,选择文件,然后只需点击几下即可将它们发送到任何归档。
无需从外部窗口进行拖放。
使用两种不同的模式(DLL 和 EXE)旨在最大化归档列表的性能。为简单起见,DLL 包含了大量多余的代码,但这使其更容易与 EXE 保持对齐。
在 `zpaqfranz` 的新版本中,你可以注意到使用了 `DL` 定义进行管理。本质上,这是使用直接的操作系统回调,而不是 Lazarus 自身的机制。
## 从源码构建
Catpaq 使用 **Free Pascal / Lazarus** 编写。要自行构建:
1. 安装 [Lazarus](https://www.lazarus-ide.org/)(在 4.4 版本上开发,FPC 3.2.2)
2. 克隆此仓库
3. 在 Lazarus IDE 中打开 `catpaq.lpr`
4. Build → Compile
几乎没有外部依赖
若要更新硬编码的哈希值,你可以使用 newcat.cpp https://github.com/fcorbelli/catpaq/blob/main/work/newcat.cpp
## 许可证
MIT — 详情请参阅 [LICENSE](LICENSE)。
标签:GUI图形界面, HTTP 参数枚举, ZPAQ, 哈希校验, 归档管理工具, 数据备份, 文件压缩