Backups should survive real life.
tzap is a fast, self-healing archive tool for serious long-term storage. It
can encrypt private archives, publish explicit plaintext archives, add recovery
data for damaged storage, split cleanly across drives or cloud objects, and
restore one file from a huge archive without unpacking everything else.
One command. One archive. No duct-taping together tar, compression, encryption, checksums, parity files, split-volume naming, and restore logic.
- It protects the stuff that matters. Choose passphrase or raw-key encryption for private archives, or explicit no-encryption mode for public recovery-focused archives.
- It is built for ugly storage reality. Bit rot, missing volumes, old drives, cloud copies, and cold archives are part of the design.
- It gets you one file fast. Pull a photo, contract, source file, or record out of a giant archive without restoring the whole thing first.
- It is seriously quick. In the public 1 GB / 6000-file benchmark,
tzapcreated/extracted archives faster thantar + zstd,7z, andzip; even encrypted and authenticated with the default 5% bit-rot buffer, create/extract time stayed near the plaintext fast path. See the benchmark results. - It keeps big archives manageable. Split archives into practical volume files for drives, discs, object storage, or offline sets.
- It is open source and inspectable. The Rust implementation, format spec, tests, and fuzz targets are in this repository.
- It is v44-compliant for the supported workflows. The documented writer, reader, recovery, RootAuth, and RecipientWrap workflows are covered by the traceability gates, with v43 reader compatibility preserved.
- personal photo, video, and document vaults
- private project and source archives
- legal, research, media, and records storage
- cold backups that need privacy and recovery
- huge datasets spread across drives, discs, or cloud buckets
- teams that need repeatable verification before restore
Install:
cargo install tzapCreate an encrypted archive:
export TZAP_PASSPHRASE='correct horse battery staple'
printf '%s\n' "$TZAP_PASSPHRASE" | \
tzap create --password-stdin \
-o backup.tzap \
./projectCreate an explicit plaintext archive:
tzap create --no-encryption -o public.tzap ./public-projectCheck it before you trust it:
printf '%s\n' "$TZAP_PASSPHRASE" | tzap verify --password-stdin backup.tzapRestore one file:
printf '%s\n' "$TZAP_PASSPHRASE" | \
tzap extract --password-stdin --stdout backup.tzap project/readme.txtHomebrew, GitHub release assets, and source builds are covered in the installation guide.
tzap can add recovery data when the archive is created. Later, if ordinary
storage damage happens, tzap verify or tzap extract can rebuild damaged
pieces within that recovery budget and then check the result before trusting it.
For split archives, tzap can also survive missing volume files when you choose
a matching volume-loss tolerance:
tzap create \
--keyfile project.key \
--volumes 3 \
--volume-loss-tolerance 1 \
-o project.tzap \
./projectSee the recovery matrix for the simple "what happens if..." version.
- Security model: what is private, what is checked, how keys work, and how safe restores behave.
- Recovery matrix: bit rot, damaged blocks, missing volumes, and user actions.
- Benchmark results: measured create, verify, extract, selected-file restore, and recovery performance.
- CLI reference: every command, option, and exit label.
- Operational boundaries: concrete behavior for automation and production workflows.
- CLI crate: crates.io/crates/tzap
- Core library: crates.io/crates/tzap-core
- Signing plugin: crates.io/crates/tzap-plugin-signing
- Implemented format spec: specs/tzap-format-revisedv44.md
- v43 compatibility spec: specs/tzap-format-revisedv43.md
- v44 compliance traceability: public-docs/traceability/README.md
- Development guide: public-docs/tzap-development.md
Licensed under the Apache License, Version 2.0. See LICENSE.