tzap
Fast archives that can heal.
tzap is the archive CLI for people who want backups to be private when needed,
fast, recoverable, and easy to restore. It packs zstd compression, optional
authenticated encryption, safe extraction defaults, multi-volume recovery, and
instant selected-file restores into one practical command.
This release is the v44-compliant reference CLI for documented supported workflows. Legacy v43 inputs fail closed with an unsupported revision error.
Use it for project folders, private datasets, media collections, cold storage, cloud object storage, and long-lived backup sets where "just zip it" is not enough.
Why use it
- Fast archives. Rust, zstd, and indexed metadata keep large backups moving.
- Private or public archives. Use passphrase/raw-key encryption for private
archives, or
--no-encryptionfor explicit plaintext archives. - Self-healing archives. Recovery data can repair accidental damage within the budget chosen at create time.
- Instant targeted restores. Restore one file from a large archive without unpacking everything else.
- Split-volume storage. Write deterministic volume files for drives, discs, and cloud object storage.
- Signed roots. Ed25519 and X.509 RootAuth workflows are available when archives need origin authentication.
Install
From Homebrew:
From crates.io:
The CLI requires Rust 1.85 or newer when installing from source.
Quick start: passphrase archive
Create an encrypted archive from a passphrase:
| \
Inspect and verify it:
|
|
Restore everything:
| \
Restore one file:
| \
Quick start: key file archive
Quick start: plaintext archive
Recoverable multi-volume archive
Create three volumes that can survive one missing volume:
This writes:
project.vol000.tzap
project.vol001.tzap
project.vol002.tzap
Verify or restore from any discovered volume:
Signed RootAuth workflow
X.509 RootAuth signing is available with --signing-cert,
--signing-private-key, and optional --x509-signature-scheme.
Safety defaults
tzap extract validates archive paths and does not overwrite existing files
unless --overwrite is supplied. Keep passphrases and key files separate from
archive data; raw-key archives require the original 32-byte key.
Trust material
- Security model: https://github.com/tzap-org/tzap/blob/main/public-docs/tzap-security-model.md
- Recovery matrix: https://github.com/tzap-org/tzap/blob/main/public-docs/tzap-recovery-matrix.md
- Benchmark results: https://github.com/tzap-org/tzap/blob/main/public-docs/tzap-benchmark-results.md
- CLI reference: https://github.com/tzap-org/tzap/blob/main/public-docs/tzap-cli-reference.md
- Operational boundaries: https://github.com/tzap-org/tzap/blob/main/public-docs/tzap-operational-boundaries.md
- v44 compliance traceability: https://github.com/tzap-org/tzap/blob/main/public-docs/traceability/README.md
More information
- Repository: https://github.com/tzap-org/tzap
- Format specification: https://github.com/tzap-org/tzap/blob/main/specs/tzap-format-revisedv44.md
- Library crate: https://crates.io/crates/tzap-core
- Signing plugin crate: https://crates.io/crates/tzap-plugin-signing