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::ConsoleBuilder;pub use api::builders::ExecBuilder;pub use api::builders::FsBuilder;pub use api::builders::KernelBuilder;pub use api::builders::MachineBuilder;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;
Modules§
Structs§
- Block
Device Metrics - Per-device block metrics.
- Block
Metrics - Aggregate block metrics.
- CpuMetrics
- CPU metrics.
- Memory
Metrics - Memory metrics.
- Metrics
Handle - Cloneable handle for point-in-time VM metrics.
- VmMetrics
- Point-in-time VM metrics.
Traits§
- Console
Port Backend - Trait for custom virtio-console port backends.
- DynFile
System - Object-safe filesystem trait for dynamic dispatch.