Go packages for interacting with QEMU virtual machines using the QEMU Machine Protocol (QMP).
go-qemu is a collection of Go packages designed to interact with running QEMU instances using the QEMU Machine Protocol (QMP). It provides programmatic control over virtual machines, enabling automation and management of QEMU-based virtualization environments. The project solves the problem of manually managing VMs by offering a structured API for common operations.
Go developers working with virtualization, infrastructure automation, or testing who need to programmatically manage QEMU virtual machines.
Developers choose go-qemu for its production-tested reliability, clean API for QMP interaction, and the ability to manage both single VMs and groups of VMs efficiently. It integrates well with other tools like libvirt for comprehensive virtualization workflows.
Go packages to interact with QEMU using the QEMU Machine Protocol (QMP). Apache 2.0 Licensed.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Used in production at DigitalOcean, ensuring robustness for real-world virtualization automation, as noted in the README.
Offers packages for both single VMs (qemu) and groups of VMs (hypervisor), simplifying different automation scenarios per the overview.
The qmp package provides a friendly API that wraps code-generated types, easing interaction with the QEMU Machine Protocol.
Designed to work alongside go-libvirt, enabling cohesive virtualization workflows, as mentioned in the production details.
The API is not considered stable and may change, requiring vendoring for production use, which adds maintenance overhead.
The README admits that subtle bugs may exist, leading to unexpected behavior in critical automation environments.
Specifically tied to QEMU virtualization, lacking support for other hypervisors like VMware or Hyper-V, restricting its utility.