No description
Find a file
2026-07-19 18:12:46 +02:00
.moira/envs feat(nix): add moira publish pipeline for the ore container image 2026-07-01 19:27:48 +02:00
crates Support daemon-backed node commands 2026-07-19 18:12:46 +02:00
docs Consolidate CLI command model 2026-07-12 04:40:59 +02:00
nix Consolidate CLI command model 2026-07-12 04:40:59 +02:00
todo Move concept docs into code 2026-07-12 04:05:13 +02:00
.envrc WIP: init 2026-06-30 00:41:59 +02:00
.gitignore Initial commit: .gitignore 2026-06-30 00:27:40 +02:00
Cargo.lock feat(merge): three-way snapshot merge with per-path drivers 2026-07-09 23:01:15 +02:00
Cargo.toml feat(merge): three-way snapshot merge with per-path drivers 2026-07-09 23:01:15 +02:00
flake.lock feat(nix): add moira publish pipeline for the ore container image 2026-07-01 19:27:48 +02:00
flake.nix Consolidate CLI command model 2026-07-12 04:40:59 +02:00
README.md Consolidate CLI command model 2026-07-12 04:40:59 +02:00
shell.nix Move shell definition under nix 2026-07-12 04:12:16 +02:00

Ore

Ore is a prototype state system: persistent data is stored as versioned,
content-addressed state, and backups, archives, sync, materialization, and future
filesystem views all sit on that one model.

Node  -> State -> Branch -> Snapshot -> Tree -> Entry

The important rule is:

data       = immutable, content-addressed objects
references = mutable, named branch/tag pointers

A .ore/ directory is a node: a sovereign machine identity plus one opaque
object store. A node can hold many states. A state owns no directory; you
snapshot a directory into a state and materialize or checkout a state back
out to a directory.

Where to start

Crates

  • ore-coreNode façade over store, state, refs, fs, sync, and crypto.
  • ore-cli — the ore command.
  • ore-daemonored, the HTTP API / sync / metrics process.
  • ore-store — opaque content-addressed store, loose objects, packs, indexes.
  • ore-state — snapshots, refs, history walking, diff/merge glue, fsck.
  • ore-object — canonical object model and serialization.
  • ore-fs — directory ingest and materialization.
  • ore-chunk — content-defined chunking.
  • ore-crypto — per-state encryption and key wrapping.
  • ore-diff, ore-merge — pluggable content diff/merge drivers.
  • ore-id, ore-encoding — content IDs and wire primitives.

Quick sketch

cargo build

ore node init
mkdir data
echo hello > data/note.txt
ore snapshot default --from data -m first
ore log default
ore restore default main restored