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;