rvf-launch 0.1.0

QEMU microVM launcher for RVF cognitive containers
Documentation

rvf-launch

QEMU microVM launcher for RVF cognitive containers.

What It Does

rvf-launch boots an .rvf file as a standalone Linux microservice inside a QEMU microVM. It extracts the embedded kernel from KERNEL_SEG, launches QEMU with virtio I/O, and provides a programmatic API for lifecycle management.

Features

Feature Description
Launcher Full QEMU process management with automatic cleanup
KVM/TCG detection Auto-selects KVM acceleration when available, falls back to TCG
QMP protocol Real QEMU Machine Protocol client for graceful shutdown
Kernel extraction Reads KERNEL_SEG from .rvf files for boot
Port forwarding Automatic virtio-net with API and optional SSH ports

Usage

use rvf_launch::{Launcher, LaunchConfig};
use std::time::Duration;

let config = LaunchConfig {
    rvf_path: "appliance.rvf".into(),
    memory_mb: 128,
    vcpus: 2,
    api_port: 8080,
    ssh_port: Some(2222),
    enable_kvm: true,
    ..Default::default()
};

let mut vm = Launcher::launch(&config)?;
vm.wait_ready(Duration::from_secs(30))?;

// Query vectors through the VM
let results = vm.query(&query_vector, 10)?;

// Graceful shutdown via QMP
vm.shutdown()?;

Requirements

  • QEMU installed (qemu-system-x86_64 or qemu-system-aarch64)
  • KVM optional (falls back to TCG emulation)

Tests

cargo test -p rvf-launch  # 8 tests

License

MIT OR Apache-2.0