Small, focused, reusable
lamco-rdp is a workspace of modular RDP protocol components for building RDP servers and clients in Rust. Each member crate is independent and reusable, following the Unix-philosophy approach of small tools that do one thing well.
The crates integrate cleanly with the IronRDP ecosystem while providing additional functionality specifically for Wayland/Linux environments — input translation, clipboard interoperability, and file transfer.
Three focused libraries
lamco-rdp-input
v0.1
Keyboard scancode → evdev translation, multi-monitor coordinate transformation, international layouts.
Input details →
lamco-clipboard-core
v0.6
Protocol-agnostic clipboard utilities: ClipboardSink trait, MIME/Windows format conversion, loop detection.
Core details →
lamco-rdp-clipboard
v0.3
IronRDP CliprdrBackend implementation — bridges CLIPRDR SVC to ClipboardSink. File transfer included.
RDP integration →
Pick the pieces you need
[dependencies]
lamco-rdp = "0.5"
[dependencies]
lamco-rdp = { version = "0.5", default-features = false, features = ["input"] }
[dependencies]
lamco-rdp = { version = "0.5", features = ["full"] }
Features: input + clipboard-core (default);
clipboard-rdp pulls in the IronRDP CLIPRDR backend.
How the pieces relate
┌───────────────────────────────────────────────────────────────────┐
│ lamco-rdp │
├──────────────────────┬────────────────────┬───────────────────────┤
│ lamco-rdp-input │ lamco-clipboard- │ lamco-rdp-clipboard │
│ │ core │ │
│ Scancode tables │ ClipboardSink │ RdpCliprdrBackend │
│ Layout support │ FormatConverter │ RdpCliprdrFactory │
│ Coord transform │ LoopDetector │ CliprdrBackend impl │
│ Mouse acceleration │ TransferEngine │ File transfer │
└──────────┬───────────┴─────────┬──────────┴──────────┬────────────┘
│ │ │
▼ ▼ ▼
Wayland evdev Any backend IronRDP SVC
(Portal / X11 / ...) (CLIPRDR)
clipboard-core defines the sink trait; rdp-clipboard wires IronRDP's CLIPRDR channel to any sink implementation.
Related work at Lamco
Uses — every lamco-rdp member crate ships in the production RDP server.
Sibling — the Wayland capture stack that feeds frames into RDP sessions.
Upstream — the Rust RDP protocol library these crates extend.
Research — protocol-level context for the RDP work.
Build on lamco-rdp
Three modular crates for the messy parts of Linux RDP. Pull in the meta-crate or cherry-pick what you need.