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::FsBuilder;
pub use api::builders::VsockBuilder;
pub use api::builders::ConsoleBuilder;
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::VmMemoryState;

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.
FilesystemMetrics
Filesystem metrics.
HostCpuId
Identifies one logical processor in the host’s processor topology.
MemoryMetrics
Memory metrics.
MetricsHandle
Cloneable handle for point-in-time VM metrics.
NumaDistance
One entry in the dense guest NUMA distance matrix.
NumaNodeConfig
One dense guest proximity domain and the host policy for its backing memory.
NumaTopology
A fully resolved guest NUMA description supplied by the embedding runtime.
PlacementReport
The host placement that was actually established before guest execution begins.
VmMetrics
Point-in-time VM metrics.
VsockConnectRequest
Metadata for a guest-initiated connection to a registered host port.
VsockNotifier
Cloneable wake handle for a custom vsock stream.

Enums§

HostMemoryPolicy
Host backing policy for guest RAM belonging to a resolved node.
MemoryPlacementResult
The effective host-memory placement of ordinary guest RAM and hotplug capacity.
VcpuPlacementResult
The effective host placement of one guest vCPU.
VsockShutdown
Direction requested by a guest shutdown packet.

Traits§

ConsolePortBackend
Trait for custom virtio-console port backends.
DynFileSystem
Object-safe filesystem trait for dynamic dispatch.
VsockPortBackend
Factory for custom, in-process services exposed on one host vsock port.
VsockStreamBackend
One nonblocking byte stream served by a custom vsock backend.