Crate system_harness
source ·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": "busybox"
}
Structs§
- A container system config
- System harness error
- A machine event
- A running QEMU system
- A configuration for running QEMU
Enums§
- Type of error
- Type of event
- System keyboard key
- System status
Traits§
- An event publisher
- A trait representing event listener
- A trait representing a harnessed system
- A trait representing a harnessed system that should be treated as a terminal