hd_mount/lib.rs
1//! # hd-mount
2//!
3//! FUSE filesystem projection from a Merkle DAG for hyperdocker.
4//!
5//! This crate implements a virtual filesystem layer that projects content from
6//! the CAS store through the Merkle DAG into a mount point. It uses FUSE to
7//! present a read-only view of the environment's files, with overlay support
8//! for writable layers.
9//!
10//! ## Key Types
11//!
12//! - [`ProjectedFs`] - Projects DAG nodes as filesystem entries
13//! - [`Overlay`] - Writable overlay on top of the projected filesystem
14//! - [`FuseFs`] - FUSE filesystem implementation
15//! - [`MountManager`] - Manages mount/unmount lifecycle
16//! - [`MountHandle`] - Handle to an active mount point
17//!
18//! ## Example
19//!
20//! ```no_run
21//! use hd_mount::MountManager;
22//! use std::path::Path;
23//!
24//! let mut manager = MountManager::new(Path::new("/tmp/mnt")).unwrap();
25//! // register_mount takes an env ContentHash and creates the mountpoint directory
26//! ```
27
28pub mod projected;
29pub mod overlay;
30pub mod fuse;
31pub mod manager;
32
33pub use projected::ProjectedFs;
34pub use overlay::Overlay;
35pub use fuse::FuseFs;
36pub use manager::{MountManager, MountHandle, MountState};