Skip to main content

Module api

Module api 

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

BlockDeviceMetrics
Per-device block metrics.
BlockMetrics
Aggregate block metrics.
CpuMetrics
CPU metrics.
ExecutionState
Complete hypervisor-owned execution state at one VM-wide pause generation.
FilesystemMetrics
Filesystem metrics.
GuestMemoryRange
One non-empty guest-physical byte range.
HostCpuId
Identifies one logical processor in the host’s processor topology.
MemoryBaselineToken
Runtime-local capability naming the latest successfully published memory baseline.
MemoryCaptureOptions
Bounded streaming configuration for memory generation production.
MemoryCapturePlan
Candidate memory generation that has not yet become the retained baseline.
MemoryCaptureStats
Measurements from producing one full or incremental memory generation.
MemoryGeneration
Identifies one candidate or published memory-content generation.
MemoryMetrics
Memory metrics.
MemoryTopologyGeneration
Identifies one immutable guest-memory topology within a running VMM.
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.
PrivateMemoryBacking
Immutable, read-only file ownership retained by every resulting mapping.
PrivateMemoryRegion
One complete guest RAM region in an immutable flat memory image.
VcpuExecutionState
Opaque state for one vCPU, interpreted only by its matching backend codec.
VmMetrics
Point-in-time VM metrics.

Enums§

ExecutionArchitecture
Guest instruction-set architecture represented by an execution-state artifact.
ExecutionBackend
Hypervisor backend that produced an execution-state artifact.
FullCaptureReason
Reason an incremental request must safely use complete capture instead.
HostMemoryPolicy
Host backing policy for guest RAM belonging to a resolved node.
IncrementalCaptureDecision
Result of requesting capture relative to a retained baseline.
MemoryCaptureKind
Describes whether a candidate capture is complete or relative to a retained baseline.
MemoryPlacementResult
The effective host-memory placement of ordinary guest RAM and hotplug capacity.
VcpuPlacementResult
The effective host placement of one guest vCPU.

Traits§

MemoryCaptureSink
Receives one bounded, ordered memory-generation stream.