Skip to main content

Crate rust_par2

Crate rust_par2 

Source
Expand description

Pure Rust PAR2 verify and repair.

The first Rust crate with full PAR2 repair support. Implements GF(2^16) arithmetic with the PAR2-mandated polynomial 0x1100B and Reed-Solomon decoding for block-level repair.

§Usage

use std::path::Path;

let par2_path = Path::new("/downloads/movie/movie.par2");
let job_dir = Path::new("/downloads/movie");

// Parse the PAR2 index file
let file_set = rust_par2::parse(par2_path).unwrap();

// Verify all files
let result = rust_par2::verify(&file_set, job_dir);

if result.all_correct() {
    println!("All files intact");
} else if result.repair_possible {
    // Repair damaged/missing files
    let repair = rust_par2::repair(&file_set, job_dir).unwrap();
    println!("{repair}");
}

Re-exports§

pub use repair::BlockFile;
pub use repair::BlockMap;
pub use repair::Repair;
pub use repair::RepairError;
pub use repair::RepairResult;
pub use repair::SliceLocation;
pub use repair::build_block_map;
pub use repair::repair;
pub use repair::repair_from_verify;
pub use repair::repair_from_verify_no_reverify;
pub use slice::SliceHasher;
pub use types::DamagedFile;
pub use types::Md5Hash;
pub use types::MissingFile;
pub use types::Par2File;
pub use types::Par2FileSet;
pub use types::SliceChecksum;
pub use types::VerifiedFile;
pub use types::VerifyResult;

Modules§

gf
GF(2^16) Galois field arithmetic.
gf_simd
SIMD-accelerated GF(2^16) buffer operations.
gf_simd_public
Re-export SIMD functions for benchmarks.
matrix
Matrix operations over GF(2^16) for Reed-Solomon decoding.
recovery
Recovery block reading from PAR2 volume files.
repair
PAR2 repair engine.
slice
Per-slice checksums for in-flight verification.
types
Data types for PAR2 file sets.

Enums§

ParseError
Errors that can occur while parsing PAR2 files.

Functions§

compute_hash_16k
Compute the MD5 hash of the first 16 KiB of a file.
parse
Parse a PAR2 file and return the complete file set metadata.
parse_par2_reader
Parse PAR2 packets from any Read + Seek source.
verify
Verify all files in a PAR2 set against actual files in a directory.