Expand description
msb_krun - Native Rust API for libkrun microVMs.
This crate provides a builder-pattern API for creating and entering microVMs using libkrun’s VMM infrastructure.
§Lifecycle
Vm::enter() never returns on success. When the guest shuts down, the
VMM calls _exit(), killing the entire process. enter() only returns
Err if something fails before the VMM takes over.
§Example
use msb_krun::{VmBuilder, Result};
fn main() -> Result<()> {
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 api::builder::VmBuilder;pub use api::builders::FsBuilder;pub use api::builders::VsockBuilder;pub use api::builders::ConsoleBuilder;pub use api::builders::ConsolePortOptions;pub use api::builders::ExecBuilder;pub use api::builders::KernelBuilder;pub use api::builders::MachineBuilder;pub use api::builders::NumaBuilder;pub use api::builders::NumaNodeBuilder;pub use api::error::BuildError;pub use api::error::ConfigError;pub use api::error::Error;pub use api::error::Result;pub use api::error::RuntimeError;pub use api::exit_handle::ExitHandle;pub use api::vm::Vm;pub use api::vm::VmControl;pub use api::vm::VmCpuState;pub use api::vm::VmExecutionState;pub use api::vm::VmGenerationId;pub use api::vm::VmGenerationRequest;pub use api::vm::VmGenerationState;pub use api::vm::VmGenerationWaitOutcome;pub use api::vm::VmMemoryRestoreSource;pub use api::vm::VmMemoryRestoreTarget;pub use api::vm::VmMemoryState;pub use api::vm::VmPauseGeneration;
Modules§
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.
- Vsock
Connect Request - Metadata for a guest-initiated connection to a registered host port.
- Vsock
Notifier - Cloneable wake handle for a custom vsock stream.
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.
- Vsock
Shutdown - Direction requested by a guest shutdown packet.
Traits§
- Console
Port Backend - Trait for custom virtio-console port backends.
- DynFile
System - Object-safe filesystem trait for dynamic dispatch.
- Memory
Capture Sink - Receives one bounded, ordered memory-generation stream.
- Vsock
Port Backend - Factory for custom, in-process services exposed on one host vsock port.
- Vsock
Stream Backend - One nonblocking byte stream served by a custom vsock backend.