Skip to main content

Crate msb_krun

Crate msb_krun 

Source
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§

api
Native Rust API for libkrun.
backends
Custom backend support for libkrun.

Structs§

BlockDeviceMetrics
Per-device block metrics.
BlockMetrics
Aggregate block metrics.
CpuMetrics
CPU metrics.
MemoryMetrics
Memory metrics.
MetricsHandle
Cloneable handle for point-in-time VM metrics.
VmMetrics
Point-in-time VM metrics.

Traits§

ConsolePortBackend
Trait for custom virtio-console port backends.
DynFileSystem
Object-safe filesystem trait for dynamic dispatch.