WIP Rust crates to interact with a -display dbus QEMU. Some dependencies, such as RDW are also in development and unreleased.
Go to file
Marc-André Lureau 44121f6a76 qemu-display: don't spawn task for listeners!
Or it may process messages out of order...

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 13:44:54 +04:00
.cargo chore: bump deps 2024-07-24 13:44:39 +04:00
keycodemap keycodemap: bump phf 2022-01-18 23:10:36 +04:00
keycodemapdb@320f92c36a Update keycodemapdb 2021-03-09 15:47:09 +04:00
qemu-display qemu-display: don't spawn task for listeners! 2024-07-24 13:44:54 +04:00
qemu-rdp chore: bump deps 2024-07-24 13:44:39 +04:00
qemu-rdw Fix clone!() macro 2024-07-22 22:25:07 +04:00
qemu-vnc chore: bump deps 2024-07-24 13:44:39 +04:00
qemu-vte Fix clone!() macro 2024-07-22 22:25:07 +04:00
xtask Bump Cargo.lock 2024-06-11 11:45:43 +04:00
.gitignore chore: commit Cargo.lock 2024-04-10 12:14:51 +04:00
.gitmodules Remove gtk4 2021-04-13 16:45:42 +04:00
.rustfmt.toml Add a README.md 2021-10-08 20:25:58 +04:00
Cargo.lock chore: bump deps 2024-07-24 13:44:39 +04:00
Cargo.toml Cargo update 2024-07-22 22:25:07 +04:00
README.md Update README.md 2023-03-21 09:55:40 +00:00

QEMU D-Bus display experiment

Introduction

WIP Rust crates to interact with a -display dbus QEMU. Some dependencies, such as RDW are also in development and unreleased.

Features

Depending on what the VM exposes & supports, various interfaces are implemented:

  • display, with optional DMABUF sharing
  • display resize
  • keyboard & mouse
  • serial terminals
  • QMP/HMP monitors
  • audio playback & recording
  • USB device redirection
  • clipboard sharing

Project organization

qemu-display

This crate provides simple D-Bus interfaces through zbus, and some basic abstractions.

qemu-rdw

This crate aims to provide Gtk+ 4 widget for a QEMU display, as well as dialogs/widgets for USB redirection and other options or features.

Currently it's a demo app (run by default with cargo run).

It is also based on a WIP crate "RDW" (Remote display/desktop widget) to provide a base widget for various remote display solutions (VNC, RDP, Spice etc).

qemu-vnc

A simple VNC server implementation.

qemu-vte

A standalone VTE/Gtk+ 4 client, which should eventually be a consumable crate or integrated with qemu-rdw.

Build requirements

To build this project, you will need several system libraries. Here is the current list of build dependencies on Fedora:

$ sudo dnf install cargo gcc usbredir-devel wayland-devel libxkbcommon-devel glib2-devel gtk4-devel gstreamer1-devel gstreamer1-plugins-base-devel