| Crates.io | qmp |
| lib.rs | qmp |
| version | 0.1.1 |
| created_at | 2026-01-07 13:54:10.965949+00 |
| updated_at | 2026-01-07 13:54:10.965949+00 |
| description | QEMU QMP client library |
| homepage | https://github.com/lvillis/qmp-rs |
| repository | https://github.com/lvillis/qmp-rs |
| max_upload_size | |
| id | 2028292 |
| size | 91,784 |
QEMU QMP client library.
Goals:
qmp_capabilities negotiation.tracing observabilityuse qmp::{Client, Endpoint};
# async fn demo() -> qmp::Result<()> {
let client = Client::connect(Endpoint::unix("/var/run/qemu-server/100.qmp")).await?;
let status: serde_json::Value = client.execute("query-status", Option::<()>::None).await?;
println!("status = {status}");
let mut events = client.events();
while let Ok(ev) = events.recv().await {
println!("event: {} data={}", ev.name, ev.data);
}
# Ok(()) }
use qmp::{Client, Endpoint};
use qmp::ops::{OpsClient, Profile};
# async fn demo() -> qmp::Result<()> {
let client = Client::connect(Endpoint::unix("/var/run/qemu-server/100.qmp")).await?;
// Read-only allow-list by default.
let ops = OpsClient::from_profile(client, Profile::ReadOnly);
let v = ops.query_version().await?;
println!("qemu {}.{}.{} ({})", v.qemu.major, v.qemu.minor, v.qemu.micro, v.package);
# Ok(()) }