Expand description
Native Rust API for libkrun.
This module provides a builder-pattern API for creating and entering microVMs using nested builders for organized configuration.
§Example
use msb_krun::{VmBuilder, Result};
fn main() -> Result<()> {
// enter() hands process lifecycle to the VMM.
// On normal guest exit, the process terminates directly.
// It only returns on early setup errors.
VmBuilder::new()
.machine(|m| m.vcpus(4).memory_mib(2048))
.fs(|fs| fs.root("/path/to/rootfs"))
.exec(|e| e.path("/bin/myapp").args(["--flag"]).env("HOME", "/root"))
.build()?
.enter()?;
unreachable!()
}Re-exports§
pub use builder::VmBuilder;pub use builders::FsBuilder;pub use builders::VsockBuilder;pub use builders::ConsoleBuilder;pub use builders::ConsolePortOptions;pub use builders::ExecBuilder;pub use builders::KernelBuilder;pub use builders::MachineBuilder;pub use builders::NumaBuilder;pub use builders::NumaNodeBuilder;pub use error::BuildError;pub use error::ConfigError;pub use error::Error;pub use error::Result;pub use error::RuntimeError;pub use exit_handle::ExitHandle;pub use vm::Vm;pub use vm::VmControl;pub use vm::VmCpuState;pub use vm::VmExecutionState;pub use vm::VmGenerationId;pub use vm::VmGenerationRequest;pub use vm::VmGenerationState;pub use vm::VmGenerationWaitOutcome;pub use vm::VmMemoryRestoreSource;pub use vm::VmMemoryRestoreTarget;pub use vm::VmMemoryState;pub use vm::VmPauseGeneration;
Modules§
- builder
- VM Builder for creating and configuring microVMs using nested builders.
- builders
- Sub-builders for VmBuilder nested configuration.
- error
- exit_
handle - Handle for triggering VM exit from any thread.
- metrics
- VM metrics API.
- vm
- VM handle for entering microVMs.
Structs§
- Block
Device Metrics - Per-device block metrics.
- Block
Metrics - Aggregate block metrics.
- CpuMetrics
- CPU metrics.
- Execution
State - Complete hypervisor-owned execution state at one VM-wide pause generation.
- Filesystem
Metrics - Filesystem metrics.
- Guest
Memory Range - One non-empty guest-physical byte range.
- Host
CpuId - Identifies one logical processor in the host’s processor topology.
- Memory
Baseline Token - Runtime-local capability naming the latest successfully published memory baseline.
- Memory
Capture Options - Bounded streaming configuration for memory generation production.
- Memory
Capture Plan - Candidate memory generation that has not yet become the retained baseline.
- Memory
Capture Stats - Measurements from producing one full or incremental memory generation.
- Memory
Generation - Identifies one candidate or published memory-content generation.
- Memory
Metrics - Memory metrics.
- Memory
Topology Generation - Identifies one immutable guest-memory topology within a running VMM.
- Metrics
Handle - Cloneable handle for point-in-time VM metrics.
- Numa
Distance - One entry in the dense guest NUMA distance matrix.
- Numa
Node Config - One dense guest proximity domain and the host policy for its backing memory.
- Numa
Topology - A fully resolved guest NUMA description supplied by the embedding runtime.
- Placement
Report - The host placement that was actually established before guest execution begins.
- Private
Memory Backing - Immutable, read-only file ownership retained by every resulting mapping.
- Private
Memory Region - One complete guest RAM region in an immutable flat memory image.
- Vcpu
Execution State - Opaque state for one vCPU, interpreted only by its matching backend codec.
- VmMetrics
- Point-in-time VM metrics.
Enums§
- Execution
Architecture - Guest instruction-set architecture represented by an execution-state artifact.
- Execution
Backend - Hypervisor backend that produced an execution-state artifact.
- Full
Capture Reason - Reason an incremental request must safely use complete capture instead.
- Host
Memory Policy - Host backing policy for guest RAM belonging to a resolved node.
- Incremental
Capture Decision - Result of requesting capture relative to a retained baseline.
- Memory
Capture Kind - Describes whether a candidate capture is complete or relative to a retained baseline.
- Memory
Placement Result - The effective host-memory placement of ordinary guest RAM and hotplug capacity.
- Vcpu
Placement Result - The effective host placement of one guest vCPU.
Traits§
- Memory
Capture Sink - Receives one bounded, ordered memory-generation stream.