Offline PAR2 recovery for small file sets
moon build cmd/main --target js
node _build/js/debug/build/cmd/main/main.js --help
python examples/repair_demo.pynode /path/to/moonpar2.cjs create photos.par2 scan.bin notes.txt
node /path/to/moonpar2.cjs verify photos.par2
node /path/to/moonpar2.cjs repair restored photos.par2| 项目 | 范围 |
|---|---|
| 源文件 | 最多 64 个非空普通文件,总计 64 MiB;单层目录,使用可移植的 ASCII 文件名 |
| 分块 | 不超过 4 MiB 的文件集默认使用 4 KiB 块;更大集合自动选择 32–256 KiB。读取时支持 4 字节的倍数,最大 256 KiB,最多 4096 个源块 |
| 恢复数据 | 读取最多 32 个不同的恢复块,所有输入卷合计最多 16 MiB |
| 运行环境 | 核心库使用 MoonBit;命令行使用 Node.js 读写本地文件,无运行时网络服务 |
moon check --target js --deny-warn
moon test --target js --deny-warn
moon build cmd/main --target js --deny-warn
python tests/interop.py --par2 /path/to/par2pub(all) struct FileStatus {
name : String
healthy : Bool
missing : Bool
damaged_slices : Array[Int]
}type RecoverySetfn RecoverySet::repair(self : RecoverySet, files : Map[String, Bytes]) -> Array[(String, Bytes)] raise