Crate map¶
The workspace is split by authority and change rate. Applications normally depend only
on vsh; the other crates make boundaries auditable and publishable.
| Cargo package | Library/binary | Responsibility |
|---|---|---|
vsh |
vsh |
Primary public SDK handle; re-exports the runtime facade |
vbash |
vsh |
Implementation-free exact-version mirror of vsh |
vsh-runtime |
vsh |
Native orchestration implementation behind vsh |
vsh-types |
vsh_types |
Paths, digests, node state, transaction IDs and lifecycle |
vsh-vfs |
vsh_vfs |
Immutable snapshots and copy-on-write virtual effects |
vsh-policy |
vsh_policy |
Protected capabilities, deterministic decision and risk manifests |
vsh-monty |
vsh_monty |
Typed Monty OS/high-level calls, limits, supervision, and result contract |
vsh-store |
vsh_store |
Immutable blobs, approvals, and atomic transaction state |
vsh-commit |
vsh_commit |
Revalidation, journaled mutation, verification, and recovery |
vsh-monty-worker |
binary | Exact-version crash-isolated guest execution process |
vsh-python |
vsh._native |
Non-published PyO3 adapter used by the vsh-python wheel |
Dependency direction¶
vsh-types
├── vsh-vfs
├── vsh-policy
└── vsh-store
\
vsh-monty ── vsh-commit
\ /
vsh-runtime
|
vsh ── vbash mirror crate
|
vsh-python
The diagram is conceptual: consult the workspace manifests for the exact graph. The important rule is authority flow—PyO3 adapts the runtime, and only the commit crate owns host mutation.
Which crate should I depend on?¶
- Application or agent host:
vsh. - Custom receipt/state tooling: prefer types re-exported by
vshbefore adding a direct lower-level dependency. - Alternative deterministic policy:
vsh-policytypes are already re-exported. - Worker packaging: ship the exact matching
vsh-monty-workerbinary; do not mix worker/runtime versions. - Python extension: consume
vsh-pythonfrom PyPI; do not depend on the Cargo packagevsh-pythonfrom crates.io because it is intentionally not published as a standalone crate.
Version and supply-chain contract¶
All workspace packages share version 0.5.0, Rust 1.95.0, edition 2024, and Apache-2.0.
Direct external crates are exact-pinned, the lockfile is committed, workspace crates
forbid unsafe code, and CI runs RustSec plus license/source/duplicate policy checks.
See the dependency admission policy and release artifact order.