Skip to main content

Crate mount

Crate mount 

Source
Expand description

Heddle’s content-addressed mount.

mount is the platform-agnostic core (and Linux FUSE shell) that exposes a heddle thread as a directory tree. Reads walk the Merkle DAG lazily; writes (eventually) flow into a per-thread overlay that drains to a heddle commit on heddle capture.

The architecture is:

PlatformShell trait     ← thin platform adapters
  (FuseShell, FSKitShell, ProjFsShell, NfsShell)
    ↓
ContentAddressedMount   ← pure Rust core
    ↓
crates/repo + crates/objects  (already exists)

Three of those adapters are per-OS (FUSE on Linux, FSKit on macOS, ProjFS on Windows). [NfsShell] is the universal fallback: it stands up an in-process NFSv3 server and asks the host’s built-in NFS client to mount it. The CLI’s mount lifecycle prefers the native adapter and falls back to NFS when the native one is unavailable at runtime.

See PlatformShell for the trait every adapter implements, and ContentAddressedMount for the heddle-aware core.

Re-exports§

pub use crate::cache::BlobCachePool;
pub use crate::cache::BlobCacheStats;
pub use crate::cache::DEFAULT_BLOB_CACHE_BYTES;
pub use crate::core::ContentAddressedMount;
pub use crate::core::MountOptions;
pub use crate::core::PrewarmHandle;
pub use crate::core::PrewarmStats;
pub use crate::core::PromotionPolicy;
pub use crate::error::MountError;
pub use crate::error::Result;
pub use crate::shell::AttrUpdate;
pub use crate::shell::Attrs;
pub use crate::shell::Entry;
pub use crate::shell::NodeId;
pub use crate::shell::NodeKind;
pub use crate::shell::PlatformShell;

Modules§

cache
Shared blob cache for ContentAddressedMount.
core
Content-addressed mount core.
error
Error types for the mount crate.
shell
Platform-agnostic shell trait.