Hole-Punch
A (wip) dead simple, cross platform crate for finding the locations of holes in sparse files.
Currently supports Unix-like platforms that support the SEEK_HOLE and
SEEK_DATA commands on lseek, as well as windows.
Windows support is not complete and is still being worked on, but should already be fine for most cases.
I do not currently have a Mac to test or develop MacOS support on, so no warranties or claims are currently made about MacOS.
Usage
use File;
use *;
let mut file = open;
let segments = file.scan_chunks.expect;
for segment in segment
License
Hole-Punch is distributed under your choice of the MIT license, or Apache Version 2.0.
TO-DOs
The following features are on my "to implement" list, in order of importance:
- Windows support
- Fallback mode (reading the entire file manually looking for chunks of 0s)