Expand description
cadvm-core — the version-control engine for cadvm.
This crate owns the repository model: commits, manifests, refs, branches and
HEAD, plus the operations over them (snapshot, status, diff, checkout,
switch, revert, gc). It is deliberately UI-free — all terminal formatting
lives in cadvm-cli.
Everything here is pure Rust. There is no geometry, no CAD kernel and no FFI;
STEP files are treated as opaque text with light metadata scanning (see
step).
Re-exports§
pub use config::Config;pub use error::CoreError;pub use error::Result;pub use format::CadFormat;pub use model::Author;pub use model::Commit;pub use model::CommitBody;pub use model::FileEntry;pub use model::Manifest;pub use model::MANIFEST_VERSION;pub use repo::Head;pub use repo::Repository;pub use repo::DEFAULT_BRANCH;pub use repo::REPO_DIR;pub use status::working_tree_status;pub use status::WorkingTreeStatus;pub use step::EntityTypeCount;pub use step::StepMetadata;
Modules§
- checkout
- Working-tree mutation:
checkout,switchandrevert. - config
- Repository configuration (
.cadvm/config.json) and author resolution. - diff
- Manifest-level diffs (added / removed / modified files + metadata deltas).
- error
- Error type shared across
cadvm-core. - format
- Supported CAD file formats.
- gc
- Garbage collection: drop objects unreachable from any ref.
- geom
- Bridge to the
cadvm-geomC++/OCCT helper (Step 2: geometric diff). - ignore
.cadvmignoresupport: a small, dependency-free pattern matcher.- index
- Working-tree hash cache (
.cadvm/index.json). - mesh
- Lightweight metadata for triangle-mesh formats (STL, OBJ).
- meshdiff
- Mesh-based geometric diff for STL/OBJ — pure Rust, no Open CASCADE.
- model
- Core data types: commits, manifests and file entries.
- repo
- The
Repositoryhandle: on-disk layout, refs, HEAD and object I/O. - revision
- Revision resolution:
HEAD,HEAD~N, branch names, full and short hashes. - snapshot
- Creating snapshots (commits) from the working tree.
- status
- Working-tree status: compare the working tree against a manifest.
- step
- Lightweight, textual analysis of STEP/STP files.
- verify
- Geometric verification: assert that a diff matches expectations.
- worktree
- Working-tree scanning helpers (find tracked-format files, hash them).
Structs§
- BlobRef
- How a tracked file is laid out in the store: the whole-file raw hash plus the ordered list of fixed-size chunks that reconstruct it.
- Chunk
Ref - A reference to a stored chunk: its hash plus where it sits in the source file.
- Object
Id - A content-addressed object identifier (
blake3:<hex>). - Store
- A content-addressed object store rooted at a
.cadvm/objectsdirectory.
Enums§
- Category
- The kind of object being stored. Each maps to a sub-directory under
<objects>/.