1pub mod api;
34pub mod backends;
35
36pub use api::builder::VmBuilder;
41#[cfg(feature = "blk")]
42pub use api::builders::CacheMode;
43#[cfg(feature = "blk")]
44pub use api::builders::DiskBuilder;
45#[cfg(feature = "blk")]
46pub use api::builders::DiskImageFormat;
47pub use api::builders::FsBuilder;
48#[cfg(feature = "net")]
49pub use api::builders::NetBuilder;
50#[cfg(feature = "blk")]
51pub use api::builders::SyncMode;
52pub use api::builders::VsockBuilder;
53#[cfg(feature = "blk")]
54pub use api::builders::WritebackLimit;
55pub use api::builders::{
56 ConsoleBuilder, ExecBuilder, HostCpuId, HostMemoryPolicy, KernelBuilder, MachineBuilder,
57 MemoryPlacementResult, NumaBuilder, NumaDistance, NumaNodeBuilder, NumaNodeConfig,
58 NumaTopology, PlacementReport, VcpuPlacementResult,
59};
60pub use api::error::{BuildError, ConfigError, Error, Result, RuntimeError};
61pub use api::exit_handle::ExitHandle;
62pub use api::metrics::{
63 BlockDeviceMetrics, BlockMetrics, CpuMetrics, FilesystemMetrics, MemoryMetrics, MetricsHandle,
64 VmMetrics,
65};
66pub use api::vm::Vm;
67#[cfg(not(feature = "tee"))]
68pub use api::vm::{VmControl, VmCpuState, VmMemoryState};
69#[cfg(feature = "net")]
70pub use devices::virtio::net::rate_limit::{
71 RateLimiterConfig, RateLimiterConfigError, TokenBucketConfig,
72};
73
74#[cfg(not(target_os = "windows"))]
75pub use backends::console::ConsolePortBackend;
76
77#[cfg(not(any(feature = "tee", feature = "aws-nitro")))]
78pub use backends::fs::DynFileSystem;
79
80#[cfg(feature = "net")]
81pub use backends::net::NetBackend;
82
83pub use backends::vsock::{
84 VsockConnectRequest, VsockNotifier, VsockPortBackend, VsockShutdown, VsockStreamBackend,
85};