forensic-vfs 0.7.0

Read-only forensic virtual-filesystem contracts: the ImageSource positioned-read byte source, layered PathSpec locators, and the FileSystem navigation trait — the KNOWLEDGE leaf every disk/container/filesystem reader in the fleet implements
Documentation

forensic-vfs

The read-only forensic virtual-filesystem contracts — the KNOWLEDGE leaf every disk/container/filesystem reader in the fleet implements. It defines the layered model and nothing else: no format parsing, no I/O beyond the thin [adapters] that wrap an OS file, no reader dependencies.

The layered model

Locator (recursive locator)
   │ resolves (a per-node transform graph, in the engine)
   ▼
ImageSource  ── the universal edge: read-only positioned bytes ──────────┐
   ├── ContainerOpen : E01/VMDK/VHDX/… → ImageSource                   │  any of these
   ├── VolumeSystem     : MBR/GPT/VSS/…    → ImageSource                   │  transforms may
   ├── EncryptionLayer      : BitLocker/LUKS/… → ImageSource                   │  apply, in any
   └── FileSystem       : NTFS/ext4/APFS/… → FsNode tree                   ┘  order, per node

Load-bearing decisions

  • [ImageSource] is a positioned-read &self byte source with no write method. Parallel-safe by construction (workers share one Arc<dyn ImageSource>), and read-only in the type system — a write is uncompilable.
  • [FileSystem] reads are &self over interior mutability, so one mounted handle serves N workers; bulk enumerations are owned Send streams.
  • [Locator] identity is the structured enum, with a lossless canonical URI ([uri]) for reports and a lossy human Display.
  • True leaf. Base deps are thiserror (+ optional serde); the forensicnomicon findings bridge and the history bridge are non-default features, so a bare reader inherits neither.

Panic-free (Paranoid Gatekeeper): unsafe_code = forbid, no unwrap/expect/panic! in production, bounded readers over every attacker-controllable length/offset.