No description
| cmd/ark | ||
| internal | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
ark — Append-only, encrypted, deduplicating snapshot archive
A Go-based backup/archive tool inspired by ZPAQ-like ideas: a single append-only file containing chunks + snapshots, with deduplication and AES-256-GCM encryption.
Features (this repo)
- Single-file append-only container (
.ark) - Snapshots stored inside the archive
- Chunk-based deduplication across snapshots (MVP: fixed-size chunks)
- Integrity checks via AES-GCM authentication + per-chunk SHA-256 verification
- Encryption AES-256-GCM with Argon2id key derivation
- Commands
initinitialize repositorybackupcreate snapshotsnapshotslist snapshotslslist files within a snapshotfindregex search for file paths across snapshotsrestorerestore snapshot to directoryverifyverify repository (optionally deep)
Build
make build
./bin/ark --help
Quick start
./bin/ark --repo backup.ark init
./bin/ark --repo backup.ark backup /path/to/data --label "daily"
./bin/ark --repo backup.ark snapshots
./bin/ark --repo backup.ark ls --snapshot <id>
./bin/ark --repo backup.ark find '.*\.conf$'
./bin/ark --repo backup.ark restore --snapshot <id> --to /restore
./bin/ark --repo backup.ark verify --deep
Progress indicators
Long-running operations (backup, restore, verify --deep) show a single-line progress indicator on TTY output.