QEMUKit icon indicating copy to clipboard operation
QEMUKit copied to clipboard

Swift interface to QEMU, QMP, and QEMU guest agent.

trafficstars

QEMUKit

Swift interface to QEMU, QMP, and QEMU guest agent.

Updating Interfaces

To update the generated sources to support a new release of QEMU, run:

$ ./generateQapi.sh /path/to/qemu

Where /path/to/qemu is a path to the QEMU source files.

Usage

import QEMUKit
import QEMUKitInternal

Task {
    let qemu = QEMUVirtualMachine()
    // set delegate to handle events
    await qemuVM.setDelegate(...)
    // start QEMU using a launcher and interface implementation
    try await qemuVM.start(launcher: system, interface: ioService)
    // run something from the monitor
    try await qemuVM.monitor?.continueBoot()
    // run something from guest agent
    try await qemuVM.guestAgent?.guestSetTime(NSDate.now.timeIntervalSince1970)
}

Note: You must link with glib-2.0