Repository navigation
Releases: coldsofttech/BatchVault
Releases · coldsofttech/BatchVault
Release list
v0.1.0
BatchVault 0.1.0
The first release of BatchVault: archive many files in one go, compress them, split them into volumes of a size you choose, and restore them later with checks at every step.
Install
pip install batchvault
pip install "batchvault[crypto]" # adds encryption and signed manifests
Requires Python 3.11.4 or later. Docker images are available with and without 7-Zip, and there is a GitHub Action: uses: coldsofttech/BatchVault@v1.
Highlights
- Archive and split.
batchvault packcompresses files into numbered volumes (default 10 MB).batchvault unpackrestores them from a manifest, a folder, any single volume or a list. - Two engines. A built-in engine that needs nothing installed (xz, gzip, bzip2 or no compression), and an optional 7-Zip engine.
- Your folders are kept. Archives mirror your folder tree and
unpackrecreates it. Use--root DIRonly if you want to change where paths start. - Safe by design. Every archive has a checksummed manifest. Restoring checks each volume and each restored file before anything lands in the output folder.
- Smart compression.
--level auto(the default) picks a level for each file from its type: none for video, photos and archives, stronger for text. - Sensible defaults. Level
auto, volumes of 10 MB, no worker threads (--jobs 0) and three retries (--retries 3).
Commands
| Command | What it does |
|---|---|
pack |
Archive files into volumes |
unpack |
Restore files, recreating your folders |
verify |
Check archives are complete and readable, optionally against the originals |
inspect |
Describe archives: engine, format, level, sizes, volumes |
list files / list archives |
Build a list of files to pack, or find existing archives |
keygen, sign |
Create a signing key and sign a manifest |
doctor |
Check your setup |
Results use one consistent table (Source, Archive, Status, Details) with live progress and an ETA.
More features
--updateskips unchanged files,--retriesretries failures,--dry-runpreviews a run, and--include/--excludefilter files.- Optional encryption (AES-256-GCM) and Ed25519 signed manifests.
--delete-sourceremoves originals only after the archive is proven good by a full restore check.- A
batchvault.tomlsettings file,--notifywebhooks,--jsonand--json-eventsoutput, and per-run log files. - A Python API (
import batchvault as bv).
Safer by default
- Archives are readable only by their owner on Linux and macOS.
unpack --max-output-sizerefuses archives that would expand beyond a size you choose.- Settings files found automatically cannot run programs, send data or delete files.
- 7-Zip is never run from the current folder.
Good to know
- Videos, photos and other already-compressed files cannot shrink further.
--level autoskips the heavy work for them, and--format storesplits them with no compression at all. - Passwords are never taken as command-line flags; use an environment variable or
--password-file. --password-fileonpackonly encrypts when--encryptis also given.
Documentation
See the README and the guides in docs/ for the CLI, Python API, GitHub Action, Docker, configuration and compression.
Full changelog: https://github.com/coldsofttech/BatchVault/blob/main/CHANGELOG.md
What's Changed
- feat: BatchVault 0.1.0 by @coldsofttech in #1
New Contributors
- @coldsofttech made their first contribution in #1
Full Changelog: https://github.com/coldsofttech/BatchVault/commits/v0.1.0