1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! Subprocess-based Box controller management.
//!
//! This module provides the `ShimController` which manages Box lifecycle
//! by spawning `boxlite-shim` in a subprocess. The subprocess isolation
//! ensures that process takeover doesn't affect the host application.
//!
//! ## Architecture
//!
//! - **VmmController**: Spawning operations (creates VmmHandler)
//! - **VmmHandler**: Runtime operations on running VM (stop, metrics, etc.)
//!
//! This separation enables:
//! - Reconnection to existing VMs (VmmHandler::attach)
//! - Clear lifecycle boundaries (spawn vs runtime)
//! - Caller-controlled GuestSession creation
use crateInstanceSpec;
use BoxliteResult;
pub use VmmHandler;
pub use ;
/// Raw metrics collected from Box processes.
/// Trait for spawning VMs.
///
/// Controllers handle the spawn/attach operation and return a VmmHandler
/// for runtime operations. The caller creates the GuestSession separately.