/QI-QMP

Qt-based Interface for the QEMU Machine Protocol

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

QI-QMP

QI-QMP is a minuscule C++/Qt library that provides an interface to QEMU instances via the QEMU Machine Protocol. In other words, this library implements the client side of QMP for C++.

It presents as a QObject derived class, Qmpi, that is operated via member functions and connecting to its signals.

This project makes use of the CMake build system generator for both compilation and consumption of the library.

It is based on Qt 6.

Dev Builds

Documentation:

Detailed documentation of this library, facilitated by Doxygen, is available at: https://oblivioncth.github.io/QI-QMP/

Getting Started

Either grab the latest release or build the library from source, and import using CMake.

Building from source is recommended as this library can easily be integrated as a dependency into your project using CMake's FetchContent. An example of this is demonstrated in the documentation.

Finally, the Minimal Example, gives a basic overview of how to use the interface.

Summary

  • C++20
  • CMake 3.23.0

Dependencies

  • Qt6
  • Qx
  • OBCMake (build script support, fetched automatically)
  • Doxygen (for documentation)

Pre-built Releases/Artifacts

Releases and some workflows currently provide builds of QI-QMP in various combinations of platforms and compilers. View the repository Actions or Releases to see examples.

For all builds, Qt was configured as follows (excluding defaults):

  • Release
  • Compiler
    • Windows: win32-msvc
    • Linux: linux-clang
  • Shared/Static Linkage
  • Modules: qtbase, qtimageformats, qtnetworkauth, qtsvg, qt5compat
  • Features: relocatable
  • -ssl (Linux) / -schannel (Windows)