I’ve given some thought to this. There are a series of interface classes in the Snapshot family (yet to be reviewed) that can be backed by any reasonable implementation. Everything we’ve been working on recently, like ProcessReader and MachOImageReader, are infrastructure for the ProcessSnapshotMac implementation, which is the only Snapshot that exists so far. In the future, there will also be a MinidumpSnapshot implementation, that can provide the same type of data, fetching it from a minidump file. The minidump writer produces minidumps from Snapshot objects, but I imagine that the future Crashpad-based processor will also consume Snapshot objects. This opens the door for interesting things like a “live” processor (which would be a processor using a ProcessSnapshotMac as its data source) and dump format converters (such as connecting a MinidumpSnapshot to a MachOCoreWriter, or a MachOCoreSnapshot to a MinidumpWriter).