diff --git a/qemu-rdp/README.md b/qemu-rdp/README.md new file mode 100644 index 0000000..af0ced8 --- /dev/null +++ b/qemu-rdp/README.md @@ -0,0 +1,93 @@ +# org.qemu.Display1 D-Bus RDP server + +[![Crates.io](https://img.shields.io/crates/v/qemu-rdp.svg)](https://crates.io/crates/qemu-rdp) +[![Documentation](https://docs.rs/qemu-display/badge.svg)](https://docs.rs/qemu-rdp) +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) + +RDP server for +[org.qemu.Display1](https://www.qemu.org/docs/master/interop/dbus-display.html) +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) +```bash +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 + +1. Clone the repository: +```bash +git clone https://gitlab.com/marcandre.lureau/qemu-display +cd qemu-display/qemu-rdp +``` + +2. Build the project: +```bash +cargo build +``` + +## Changelog + +### [0.1.0] - 2025-01-29 +- Initial release + +## License + +This project is licensed under the MIT License - see the [LICENSE](https://opensource.org/licenses/MIT) file for details. + +## Acknowledgments + +- Thanks to contributors, especially [Mihnea +Buzatu](https://github.com/mihneabuz) would did the initial work during GSoC +2023 +- Credits to [IronRDP](https://github.com/Devolutions/IronRDP) +- Red Hat! + +## Contact + +- Email: marcandre.lureau@gmail.com + +--- +Built with ❤️ using Rust