A git-like, offline-first version control system for structural XML.
Operates on content-addressed Merkle DAGs of XML Infoset nodes rather than text files. XML documents are decomposed into their constituent nodes, each content-addressed by its Exclusive C14N hash, and stored in a Merkle DAG.
Architecture
- Object model (
object): XML Infoset nodes + versioning objects, all content-addressed via SHA-256(ExclusiveC14N). - Storage (
store): Async traits for object store and ref store, with in-memory and optionalSQLitebackends. - Import/Export (
import,export): Bidirectional conversion between XML strings and the Merkle DAG. - Diff (
diff): Structural tree diff exploiting Merkle hashes. - Conflict (
conflict): Divergence elements for concurrent edits. - Repository (
repo): Porcelain API composing all components.