Cryosto is a command-line tool written in Rust, designed for long-term cold-storage backup. It converts data into binary shards using Reed-Solomon error correction codes, ensuring the original data can be fully recovered even if the storage media suffers physical bad sectors or bit-rot corruption.
Core Philosophy
Cryosto does not rely on specific file systems or opaque encryption black boxes. It depends solely on mathematical error correction to guarantee long-term data permanence.
-
Erasure Coding
Built-in Reed-Solomon coding allows the original data to be fully recovered even if some shards are lost or damaged. It protects against bit rot and media bad sectors. -
Media Agnostic
Cryosto does not interact directly with hardware. Instead, it generates standard.binbinary files that users can write to optical discs, magnetic tapes, USB drives, or any block device. -
Open Format
The binary shard format is fully open and documented, so the data can be parsed by alternative tools even if Cryosto itself becomes unavailable in the future. -
No Encryption
Cryosto focuses on data integrity rather than confidentiality. This design simplifies the workflow and eliminates the risk of permanent data loss due to forgotten keys.
(Note: It can be used in conjunction with underlying disk encryption when confidentiality is required.) -
Single-File Input
The tool encodes one file at a time (for example, a user pre-packed.tararchive or any other single file). It does not traverse directory trees.
Cryosto processes data streams rather than managing the file system directly:
- Pack: The user packs the data to be archived into a single file (e.g., a
.tararchive). - Encode: Cryosto reads the input file and generates multiple
.binshard files according to the configured error-correction ratio (e.g., 10+2). - Store: The user writes the
.binfiles to cold-storage media. - Decode: Cryosto reads the
.binfiles from the media, repairs any damaged or missing shards using the error-correction codes, and restores the original single file.
The initial release focuses on establishing a reliable core workflow without unnecessary complexity:
- Input Support: Accepts only a single file.
- Encode Command: Generates
.binshards with Reed-Solomon error correction. - Decode Command: Restores the original file from the shards.
- Error-Correction Configuration: Supports configurable data-to-parity ratios via command-line parameters or a configuration file (e.g.,
10+2). - Integrity Check: Automatically verifies file integrity after restoration.
Not supported in v0.1.0: incremental backups, direct disk writing, encryption, or multi-threading.
This project is licensed under the MIT License.