vm_curator/lib.rs
1#![warn(clippy::all)]
2//! # vm-curator
3//!
4//! Core library for [vm-curator](https://github.com/mroboff/vm-curator), a TUI for
5//! managing QEMU/KVM virtual machines.
6//!
7//! This crate exposes the non-UI building blocks so that alternative front-ends
8//! (a GUI, a daemon, scripts) can reuse the same VM discovery, launch-script
9//! parsing/generation, snapshot, hardware-passthrough, import, and metadata
10//! logic that powers the terminal interface.
11//!
12//! ## Public modules
13//!
14//! - [`vm`] — VM discovery, launch-script parsing/generation, lifecycle, snapshots, import
15//! - [`commands`] — wrappers around `qemu-img` and QEMU system binaries
16//! - [`hardware`] — USB / PCI / GPU passthrough enumeration and configuration
17//! - [`metadata`] — OS profiles, QEMU profiles, family hierarchy, ASCII art
18//! - [`config`] — user settings persisted under `~/.config/vm-curator/`
19//! - [`wizard_types`] — front-end-agnostic state types for the creation/import flows
20//! - [`fs`] — small filesystem helpers
21//!
22//! ## Intentionally excluded
23//!
24//! The `ui` and `app` modules are **not** part of the public API: `ui` contains
25//! ratatui/crossterm TUI rendering code, and `app` references `ui` types, so
26//! neither can be consumed independently of the terminal front-end.
27pub mod commands;
28pub mod config;
29pub mod fs;
30pub mod hardware;
31pub mod metadata;
32pub mod vm;
33pub mod wizard_types;