pub struct VmProfile {
pub vm: Vm,
pub start_latency: f64,
pub density: f64,
pub isolation: f64,
pub snapshotting: f64,
pub agent_control: f64,
pub evidence: Vec<&'static str>,
}Expand description
A curated agentic profile of a VM/sandbox system across the five agent-native axes, with evidence.
Fields§
§vm: VmWhich system this profiles.
start_latency: f64Cold-start speed of a fresh isolated sandbox (1.0 = sub-100ms).
density: f64Sandboxes per host / low per-instance overhead (1.0 = microVM/container class).
isolation: f64Security-boundary strength for untrusted agent-generated code (1.0 = hardware virtualization, minimal attack surface).
snapshotting: f64Instant CoW fork / snapshot-restore for agent branching and warm pools.
agent_control: f64Agent/tool-native, discoverable control plane to drive lifecycle.
evidence: Vec<&'static str>Why: one evidence string per notable factor.
Implementations§
Source§impl VmProfile
impl VmProfile
Sourcepub fn fitness(&self) -> f64
pub fn fitness(&self) -> f64
Composite agentic fitness: unweighted mean of all five axes.
Examples found in repository?
examples/vm_benchmark.rs (line 25)
12fn main() {
13 println!("agentic-eval — VM/sandbox systems for agentic AI use");
14 println!("axes: start-latency, density, isolation, snapshotting, agent-control\n");
15
16 // ── Ranked benchmark (best-first by composite agentic fitness) ───────────
17 println!(
18 "{:<17} {:>7} {:>5} {:>7} {:>9} {:>8} {:>13}",
19 "system", "fitness", "start", "density", "isolation", "snapshot", "agent-control"
20 );
21 for p in rank_vms() {
22 println!(
23 "{:<17} {:>7.2} {:>5.2} {:>7.2} {:>9.2} {:>8.2} {:>13.2}",
24 p.vm.name(),
25 p.fitness(),
26 p.start_latency,
27 p.density,
28 p.isolation,
29 p.snapshotting,
30 p.agent_control,
31 );
32 }
33
34 // ── Head-to-head: AetherVM vs the microVM reference (Firecracker) ────────
35 println!("\nhead-to-head (positive = AetherVM fits agentic use better):");
36 print!("{}", compare_vms(Vm::AetherVm, Vm::Firecracker));
37
38 // ── Evidence behind the subject's profile ────────────────────────────────
39 println!("\nwhy AetherVM scores where it does:");
40 for e in &profile(Vm::AetherVm).evidence {
41 println!(" - {e}");
42 }
43
44 println!(
45 "\nReading: AetherVM leads on the agent-native axes it was designed for\n\
46 (instant CoW branching + an MCP-native control plane), while microVMs\n\
47 (Firecracker/Cloud Hypervisor) lead on raw cold-start and battle-tested\n\
48 isolation. Shared-kernel containers (Docker) win speed/density but rank\n\
49 low on isolation for untrusted, agent-generated code."
50 );
51}Trait Implementations§
Auto Trait Implementations§
impl Freeze for VmProfile
impl RefUnwindSafe for VmProfile
impl Send for VmProfile
impl Sync for VmProfile
impl Unpin for VmProfile
impl UnsafeUnpin for VmProfile
impl UnwindSafe for VmProfile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more