IronRDP
Rust implementation of the Microsoft Remote Desktop Protocol (RDP)
Install / Use
/learn @Devolutions/IronRDPREADME
IronRDP
A collection of Rust crates providing an implementation of the Microsoft Remote Desktop Protocol, with a focus on security.
Demonstration
https://user-images.githubusercontent.com/3809077/202049929-76f42471-aeb0-41da-9118-0dc6ea491bd2.mp4
Video Codec Support
Supported codecs:
- Uncompressed raw bitmap
- Interleaved Run-Length Encoding (RLE) Bitmap Codec
- RDP 6.0 Bitmap Compression
- Microsoft RemoteFX (RFX)
Examples
ironrdp-client
A full-fledged RDP client based on IronRDP crates suite, and implemented using non-blocking, asynchronous I/O.
cargo run --bin ironrdp-client -- <HOSTNAME> --username <USERNAME> --password <PASSWORD>
screenshot
Example of utilizing IronRDP in a blocking, synchronous fashion.
This example showcases the use of IronRDP in a blocking manner. It demonstrates how to create a basic RDP client with just a few hundred lines of code by leveraging the IronRDP crates suite.
In this basic client implementation, the client establishes a connection with the destination server, decodes incoming graphics updates, and saves the resulting output as a BMP image file on the disk.
cargo run --example=screenshot -- --host <HOSTNAME> --username <USERNAME> --password <PASSWORD> --output out.bmp
How to enable RemoteFX on server
Run the following PowerShell commands, and reboot.
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services' -Name 'ColorDepth' -Type DWORD -Value 5
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services' -Name 'fEnableVirtualizedGraphics' -Type DWORD -Value 1
Alternatively, you may change a few group policies using gpedit.msc:
-
Run
gpedit.msc. -
Enable
Computer Configuration/Administrative Templates/Windows Components/Remote Desktop Services/Remote Desktop Session Host/Remote Session Environment/RemoteFX for Windows Server 2008 R2/Configure RemoteFX -
Enable
Computer Configuration/Administrative Templates/Windows Components/Remote Desktop Services/Remote Desktop Session Host/Remote Session Environment/Enable RemoteFX encoding for RemoteFX clients designed for Windows Server 2008 R2 SP1 -
Enable
Computer Configuration/Administrative Templates/Windows Components/Remote Desktop Services/Remote Desktop Session Host/Remote Session Environment/Limit maximum color depth -
Reboot.
Rust version (MSRV)
IronRDP libraries follow a conservative Minimum Supported Rust Version (MSRV) policy.
The MSRV is the oldest stable Rust release that is at least 6 months old, bounded by the Rust version available in Debian stable-backports and Fedora stable.
The pinned toolchain in rust-toolchain.toml is both the project toolchain and the MSRV validated by CI.
See ARCHITECTURE.md for the full policy.
Architecture
See the ARCHITECTURE.md document.
Getting help
- Report bugs in the issue tracker
- Discuss the project on the matrix room
Related Skills
himalaya
341.6kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
341.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
341.6kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
