palimpsest-replay
Deterministic reconstruction from stored artifacts. Same envelope + same storage = bit-identical output.
Concept
The replay engine retrieves the ExecutionEnvelope and stored blobs for a given URL and timestamp, then reconstructs:
- HTTP exchange — request and response headers + body
- DOM state — rendered DOM from the
dom-snapshotrecord - Resource graph — sub-resource dependency tree with load ordering
Usage
#![allow(unused)]
fn main() {
let entries = index.history(&url);
let latest = entries.last().unwrap();
let blob = store.get(&latest.content_hash).await?;
}
For full reconstruction including DOM and sub-resources, the replay engine reads the complete CaptureGroup from the WARC++ file and rehydrates each record.
Law 5 Guarantee
Replay fidelity is the proof that the archive works. If the same envelope and the same artifacts produce different output on two runs, Law 5 is violated.
The simulation framework verifies this: verify_determinism crawls twice with the same seed and asserts byte-identical blob hashes, index entries, and page counts.
Related Crates
palimpsest-storage— provides blob retrievalpalimpsest-index— provides temporal lookupspalimpsest-artifact— provides WARC++ record parsingpalimpsest-envelope— provides execution context