Skip to main content

Crate panproto_vcs

Crate panproto_vcs 

Source
Expand description

§panproto-vcs

Schematic version control for panproto.

This crate implements a git-like version control system for schema evolution. Schemas are content-addressed objects stored in a commit DAG, with branches, merge (via colimit/pushout), and data lifting through history.

§Architecture

§Quick Start

use panproto_vcs::{MemStore, ObjectId, Object, Store, HeadState};

let mut store = MemStore::new();
assert_eq!(store.get_head().unwrap(), HeadState::Branch("main".into()));

Re-exports§

pub use data_mig::StaleData;
pub use data_mig::detect_staleness;
pub use data_mig::migrate_backward;
pub use data_mig::migrate_forward;
pub use edit_mig::decode_edit_log;
pub use edit_mig::encode_edit_log;
pub use edit_mig::incremental_migrate;
pub use error::VcsError;
pub use expr::load_expr;
pub use expr::store_expr;
pub use fs_store::FsStore;
pub use hash::ObjectId;
pub use index::Index;
pub use mem_store::MemStore;
pub use object::CommitObject;
pub use object::CommitObjectBuilder;
pub use object::ComplementObject;
pub use object::DataSetObject;
pub use object::EditLogObject;
pub use object::FileSchemaObject;
pub use object::Object;
pub use object::SchemaTreeEntry;
pub use object::SchemaTreeObject;
pub use object::TagObject;
pub use repo::CommitOptions;
pub use repo::Repository;
pub use store::HeadState;
pub use store::ReflogEntry;
pub use store::Store;
pub use tree::assemble_from_files;
pub use tree::assemble_schema;
pub use tree::build_schema_tree;
pub use tree::build_tree_from_leaves;
pub use tree::project_coproduct_protocol;
pub use tree::resolve_commit_schema;
pub use tree::walk_tree;

Modules§

auto_mig
Automatic migration derivation from schema diffs.
bisect
Binary search for the commit that introduced a breaking change.
blame
Schema element attribution: which commit introduced a vertex, edge, or constraint.
cherry_pick
Cherry-pick: apply a single commit’s migration to the current branch.
dag
DAG traversal algorithms.
data_mig
Data migration engine for the VCS.
edit_mig
Incremental migration via edit lenses.
error
Error types for the VCS engine.
expr
Content-addressed storage for expressions.
fs_store
Filesystem-backed store implementation.
gat_validate
GAT-level validation for migrations and schemas.
gc
Garbage collection: remove unreachable objects.
hash
Content-addressing via canonical serialization and blake3 hashing.
index
Staging area (index) for the next commit.
mem_store
In-memory store implementation for testing and WASM.
merge
Three-way schema merge with optional pushout verification.
object
Content-addressed objects stored in the VCS.
rebase
Rebase: replay commits onto a new base.
refs
Branch, tag, and HEAD operations.
rename_detect
Heuristic rename detection between schema versions.
repo
High-level repository orchestration (porcelain).
reset
Reset: move HEAD, unstage, or restore working state.
stash
Stash: save and restore working state.
status
Working state comparison (HEAD vs index vs working file).
store
Storage trait for the VCS object store and ref system.
tree
Merkle tree of per-file schemas.