This Cargo workspace provides small adapters to make local-file block device container files (.e01, .aff4, .vmdk, e.g.) available for random-access reading via the blockreader trait.
You'll need a Rust environment, Rust 1.85 or newer. The author tested and deployed with 1.98.
You'll also need a C compiler, which most people working with Rust already have. Rust typically uses the platform's linker, which comes with it: the Xcode Command Line Tools on macOS, or build-essential or an equivalent on Linux.
Then, to use aff4-blockreader, run this in your project directory to add it from crates.io:
cargo add aff4-blockreader blockreaderPlease see aff4tools and aff4-blockreader for examples of how an AFF4 forensic container can be read using a BlockReader.
The other file format readers are in imagereader-rs but not on crates.io, so their blockreader adapters aren't either. Using them requires adding these dependencies to your project's Cargo.toml:
cargo add blockreader
cargo add e01-blockreader --git https://github.com/jbolas/blockreader-adapters --rev <commit>
cargo add vmdk-blockreader --git https://github.com/jbolas/blockreader-adapters --rev <commit>where <commit> pins your add to a specific commit in this project that works for you.
Project code generated by Claude Opus 4.8 - 5.5. Current version should be considered experimental. Validate results with alternate tools.
Released under the MIT License with special enthusiasm for the part in all caps.