Skip to main content

vm_rs/
lib.rs

1//! vm-rs — Cross-platform VM lifecycle management.
2//!
3//! Provides a unified interface to create, boot, stop, and manage virtual machines
4//! across macOS (Apple Virtualization.framework) and Linux (Cloud Hypervisor).
5//!
6//! # Architecture
7//!
8//! ```text
9//! VmDriver trait        ← Platform-agnostic VM lifecycle
10//!   ├── AppleVzDriver   ← macOS: Apple Virtualization.framework
11//!   └── CloudHvDriver   ← Linux: Cloud Hypervisor REST API
12//!
13//! VmManager             ← Multi-VM orchestration (auto-selects driver)
14//! NetworkSwitch         ← L2 userspace Ethernet switch with MAC learning
15//! OciStore + OciPull    ← Content-addressable OCI image management
16//! Setup                 ← Cloud-init seed ISO, disk CoW, asset download
17//! ```
18
19pub mod config;
20pub mod driver;
21pub mod ffi;
22pub mod network;
23pub mod oci;
24pub mod setup;
25pub mod vm;
26
27// Re-exports for convenience
28#[cfg(unix)]
29pub use config::VmSocketEndpoint;
30pub use config::{
31    NetworkAttachment, SharedDir, VmConfig, VmHandle, VmState, VmmProcess, READY_MARKER,
32};
33pub use driver::{VmDriver, VmError};
34pub use vm::VmManager;