Open Source › Lamco RDP

Lamco RDP

RDP protocol implementations and IronRDP extensions for Rust

v0.5.3 meta-crate | MIT OR Apache-2.0 | Edition 2024, MSRV 1.85 | Built on IronRDP
META-CRATE

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.

QUICK START

Pick the pieces you need

Cargo.toml — all default features
[dependencies]
lamco-rdp = "0.5"
Cargo.toml — input-only
[dependencies]
lamco-rdp = { version = "0.5", default-features = false, features = ["input"] }
Cargo.toml — full RDP clipboard stack
[dependencies]
lamco-rdp = { version = "0.5", features = ["full"] }

Features: input + clipboard-core (default); clipboard-rdp pulls in the IronRDP CLIPRDR backend.

ARCHITECTURE

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.

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.