Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Developing

Repository layout

cadvm/
├── crates/
│   ├── cadvm-cli/    # the `cadvm` binary (CLI + TUI + viewer template)
│   ├── cadvm-core/   # repository logic, geom bridge
│   └── cadvm-store/  # content-addressed storage
├── cpp/cadvm-geom/   # C++/OCCT geometry helper
├── docs/             # this mdBook (user guide)
└── tests/fixtures/   # sample STEP files

Everyday commands

cargo fmt
cargo test                       # geometry tests skip if CADVM_GEOM_BIN unset
cargo clippy --all-targets --all-features

To run the geometry-backed tests, point at a built helper:

export CADVM_GEOM_BIN="$PWD/cpp/cadvm-geom/build/cadvm-geom"
cargo test

API documentation (cargo doc)

The crates are documented with /// / //! doc comments. Generate the API reference (for contributors) with:

cargo doc --no-deps --workspace --open

Add --document-private-items to include internal items. The build is warning -clean under RUSTDOCFLAGS="-D warnings".

This is the developer/API doc. The user guide is this mdBook (below) — keep the two distinct: rustdoc explains the code, the book explains the tool.

📚 The API reference is published online alongside this guide: https://adembch.github.io/cadvm/api/cadvm_core/index.html (rebuilt on every push by the Docs workflow).

User guide (this book)

cargo install mdbook          # once
mdbook serve docs --open      # live-reloading preview
mdbook build docs             # static site in docs/book/

The geometry helper

cpp/build.sh                  # needs Open CASCADE + cmake + a C++17 compiler

The Rust core talks to it only as a subprocess (see cadvm-core::geom); there is no FFI. Keep OCCT confined to cpp/cadvm-geom.