diaryx.org / projects /

historica

Rust MIT / Apache-2.0

Version control where the readable files are the authority.

historica is an experiment in readable, convergent version control. It follows one non-negotiable rule: a person must be able to inspect the history, understand its relationships, and recover stored content without decoding an opaque database or binary operation log.

  • History as documents. Immutable revisions in a Merkle DAG, named by SHA-256 digests — the ID of a revision is what shasum -a 256 already prints for its file.
  • Honest rewrites. Supersession is explicit, so amending or rewriting a change is recorded rather than hidden.
  • Convergence without coordination. History merges by set union; heads are discovered deterministically.
  • A photograph is a photograph. Binary content is stored as payloads beside the documents — not as a diff with + down the margin.
  • The corpus is the spec. Hand-written valid and invalid files are executed as tests, each refusal naming its reason.

Where it fits

historica keeps a journal's history beside its entries — convergent, inspectable, and durable on plain files — which is the same bet everything else at Diaryx makes. In the app it does more than remember: what you publish to a circle is a derived historica store, and what your readers write back travels home the same way.

Two siblings extend it rather than living inside it:

  • historica-remark — a reader's remarks on a chain, and the layer that carries them back. The annotation model works with no historica at all.
  • historica-minisign — signing, so a remark that arrives under someone's name can be shown to be theirs.

Status

The core model, strict revision and operation formats, and replay all exist and are corpus-tested, and the app runs its publishing and remark layers on them. It isn't a general-purpose VCS today.