Skip to main content

herolib_virt/
lib.rs

1//! # herolib-virt
2//!
3//! Virtualization and containerization tools for building, managing, and deploying
4//! containers, virtual machines, filesystem layers, and Kubernetes clusters.
5//!
6//! ## Features
7//!
8//! - **Buildah**: OCI/Docker image building with builder pattern API
9//! - **Nerdctl**: Container lifecycle management with containerd
10//! - **QCOW2**: Disk image management and creation
11//! - **Cloud Hypervisor**: Virtual machine management
12//! - **Virtiofsd**: High-performance directory sharing for VMs
13//! - **Kubernetes**: Cluster management, configuration, and operations
14//! - **Cross-Platform**: Works across Windows, macOS, and Linux
15//! - **Rhai Integration**: Full support for Rhai scripting language (optional feature)
16//! - **Error Handling**: Comprehensive error types and handling
17//!
18//! ## Modules
19//!
20//! - [`buildah`]: Container image building with Buildah
21//! - [`nerdctl`]: Container management with Nerdctl
22//! - [`qcow2`]: QCOW2 disk image management
23//! - [`cloudhv`]: Cloud Hypervisor virtual machine management
24//! - [`virtiofsd`]: High-performance directory sharing for virtual machines
25//! - [`kubernetes`]: Kubernetes cluster management and operations (requires `kubernetes` feature)
26//!
27//! ## Example
28//!
29//! ```rust,no_run
30//! use herolib_virt::buildah;
31//!
32//! // Create a container builder
33//! let mut builder = buildah::Builder::new("mybuilder", "alpine:latest")?;
34//! builder.run("apk add curl")?;
35//! let image = builder.commit("myimage")?;
36//! # Ok::<(), Box<dyn std::error::Error>>(())
37//! ```
38
39pub mod buildah;
40pub mod cloudhv;
41pub mod nerdctl;
42pub mod qcow2;
43pub mod virt_what;
44pub mod virtiofsd;
45
46#[cfg(feature = "kubernetes")]
47pub mod kubernetes;
48
49// Rhai integration - consolidated module
50#[cfg(feature = "rhai")]
51pub mod rhai;
52
53// Re-export modules from herolib_os for convenience
54pub use herolib_os::{os, process};
55
56// Re-export main types and functions for convenience
57pub use buildah::{BuildahError, Builder, ContentOperations};
58pub use cloudhv::CloudHypervisorError;
59pub use nerdctl::{Container, ContainerStatus, HealthCheck, NerdctlError};
60pub use qcow2::Qcow2Error;
61pub use virt_what::{VirtInfo, get_virt_what};
62pub use virtiofsd::{
63    VirtiofsdConfig, VirtiofsdDaemon, VirtiofsdError, get_virtiofsd_version,
64    is_virtiofsd_available, start_daemon, start_daemon_async,
65};
66
67#[cfg(feature = "kubernetes")]
68pub use kubernetes::{
69    BuildMachine, DevelopmentMachine, KubernetesConfig, KubernetesError, KubernetesManager,
70    KubernetesResult, RegistryConfig, RegistryConfigBuilder, RegistryDeploymentResult,
71};