Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

  1. HTTP exchange — request and response headers + body
  2. DOM state — rendered DOM from the dom-snapshot record
  3. 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.

  • palimpsest-storage — provides blob retrieval
  • palimpsest-index — provides temporal lookups
  • palimpsest-artifact — provides WARC++ record parsing
  • palimpsest-envelope — provides execution context