Expand description
A library for programmatically controlling systems such as emulators or virtual machines.
§QEMU
A QemuSystem
that implements
SystemHarness
can be instantiated using a
QemuSystemConfig
that can be deserialized
using serde.
The top-most mapping should align with the QEMU argument names with the sub-mappings aligning with the backends and/or properties of the arguments.
An example QEMU configuration:
{
"arch": "i386",
"memory": 512,
"machine": {
"type": "q35"
},
"device": [
{
"driver": "virtio-blk",
"drive": "f1"
}],
"blockdev": [
{
"driver": "file",
"node-name": "f1",
"filename": "tests/data/test.raw"
}
]
}
§Containers
A ContainerSystem
that implements
SystemHarness
can be instantiated using a
ContainerSystemConfig
that can be deserialized
using serde.
An example of a container configuration:
{
"tool": "podman",
"image": "docker.io/busybox"
}
Structs§
- Container
System - Container
System Config - A container system config
- Container
System Terminal - Error
- System harness error
- Event
- A machine event
- Qemu
System - A running QEMU system
- Qemu
System Config - A configuration for running QEMU
- Qemu
System Terminal
Enums§
Traits§
- Event
Publisher - An event publisher
- Event
Subscriber - A trait representing event listener
- System
Config - A traint representing a system configuration
- System
Harness - A trait representing a harnessed system
- System
Terminal - A trait representing a harnessed system that should be treated as a terminal