scanstate
Checkpoint a scan so you can resume it later. If the process crashes, pick up where you left off. Tracks which targets are done, writes a journal for crash recovery, and calculates ETA.
use ScanCheckpoint;
let mut checkpoint = new;
checkpoint.mark_complete;
checkpoint.mark_complete;
checkpoint.save.unwrap;
// Later, or after a crash:
let resumed = load.unwrap;
if resumed.is_complete
Write-ahead journal
For crash recovery, append events to a journal. If the process dies mid-scan, replay the journal to rebuild state:
use ;
let journal = new;
journal.append.unwrap;
// After crash, replay:
let entries = journal.replay.unwrap;
// Or lenient replay (skips corrupt entries):
let = journal.replay_lenient.unwrap;
Progress tracking
use ScanProgress;
let mut progress = new; // 1000 total targets
progress.record_completed;
progress.record_completed;
println!;
println!;
Contributing
Pull requests are welcome. There is no such thing as a perfect crate. If you find a bug, a better API, or just a rough edge, open a PR. We review quickly.
License
MIT. Copyright 2026 CORUM COLLECTIVE LLC.