Backup Integrity Checker Build Status Build Status

This tool is an integrity checker for backups and filesystems.

What it Does

What's it Good For?

Here are a couple sample use cases:

The tool is designed around an especially stable database format so that if something were to happen, it would be relatively straightforward to recover the contained metadata.

Install

For users running macOS or Linux on x86(-64), run:

cargo install integrity-checker --features=asm

Other users run:

cargo install integrity-checker

The asm feature enables an optimization in the sha2 crate which makes the SHA2 hash implementation faster.

Usage

To build a database db.json.gz from the directory at path, run:

ick build db.json.gz path

There are several operations one can perform on a database. The following commands check a database against a directory, diff two databases, and validate a single database, respectively.

ick check db.json.gz path
ick diff db.json.gz db2.json.gz
ick selfcheck db.json.gz

Format

See the format description.

Performance

Corpus: Linux 4.16.7 source (4403 directories, 62872 files, 890 MiB)

Machine: 2016 MacBook Pro 2.7 GHz Quad-Core i7

| Configuration | Time (s) | BW (MiB/s) | |:---------------------- | --------:| ----------:| | No Hash | 0.8832 | 1007.7 | | SHA2-512/256 | 1.3128 | 677.9 | | Blake2b | 1.3034 | 682.8 | | SHA2-512/256 + Blake2b | 1.8119 | 491.2 |

FAQ

TODO