1 unstable release
new 0.1.0 | Jan 29, 2025 |
---|
#311 in GUI
130KB
3.5K
SLoC
org.qemu.Display1 D-Bus RDP server
RDP server for
org.qemu.Display1
interface (as exposed by qemu -display dbus
).
The project was originally designed to work with QEMU, but it can be used with other displays/UI that implement the D-Bus interface.
Features
- RDP server in Rust thanks to IronRDP
- using TLS/CredSSP for secure connections
- text clipboard sharing
- audio playback
- monitor resize
- remotefx image codec
- Opus audio codec (works with some clients, like FreeRDP)
Installation & usage
cargo install qemu-rdp
To run the server against qemu, the simplest way is to use qemu -display dbus
and
run the server: (requires certificate and key)
qemu-rdp serve --bind-address YOUR_IP:3389 --cert=CERT.PEM --key=KEY.PEM
Although for a complete setup (with audio devices, clipboard and such), you may want to wait for libvirt to support it.
TODO
Some ideas to improve the project:
- some video/image codec (AV1/AVC/HEVC)
- USB redirection
- audio recording
- more types clipboard redirection
- file system redirection
- multimonitor
- tons of other stuff from RDP features, and a lot of bug fixes🐛
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
Development Setup
- Clone the repository:
git clone https://gitlab.com/marcandre.lureau/qemu-display
cd qemu-display/qemu-rdp
- Build the project:
cargo build
Changelog
[0.1.0] - 2025-01-29
- Initial release
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Thanks to contributors, especially Mihnea Buzatu would did the initial work during GSoC 2023
- Credits to IronRDP
- Red Hat!
Contact
- Email: marcandre.lureau@gmail.com
Built with ❤️ using Rust
Dependencies
~49–82MB
~1.5M SLoC