Expand description
§lamco-rdp-clipboard
IronRDP clipboard integration for Rust.
This crate provides the IronRDP CliprdrBackend
implementation for RDP clipboard synchronization. It bridges between IronRDP’s clipboard
channel and the protocol-agnostic ClipboardSink trait.
§Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ lamco-rdp-clipboard │
│ ┌─────────────────────┐ ┌───────────────────────────────┐ │
│ │ RdpCliprdrBackend │◄───────►│ ClipboardSink (trait) │ │
│ │ (CliprdrBackend) │ │ - Portal │ │
│ └─────────────────────┘ │ - X11 │ │
│ ▲ │ - Memory (testing) │ │
│ │ └───────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ ironrdp-cliprdr │ │
│ │ (CLIPRDR SVC) │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘§Usage
ⓘ
use lamco_rdp_clipboard::{RdpCliprdrBackend, RdpCliprdrFactory};
use lamco_clipboard_core::ClipboardSink;
// Create a factory with your clipboard sink implementation
let factory = RdpCliprdrFactory::new(my_clipboard_sink);
// Use with IronRDP
let backend = factory.build_cliprdr_backend();§Non-blocking Design
The CliprdrBackend trait methods are called
synchronously from the RDP message processing loop. To avoid blocking, this implementation
queues events for asynchronous processing and provides a separate event processing loop.
Re-exports§
pub use lamco_clipboard_core;
Structs§
- Clipboard
Event Receiver - Receiver side of the clipboard event channel.
- Clipboard
Event Sender - Sender side of the clipboard event channel.
- Clipboard
Format - A clipboard format with ID and optional name
- Clipboard
General Capability Flags - File
Contents Request - Represents
CLIPRDR_FILECONTENTS_REQUEST - File
Contents Response - Represents
CLIPRDR_FILECONTENTS_RESPONSE - Format
Converter - Handles clipboard data format conversion
- Format
Data Request - Represents
CLIPRDR_FORMAT_DATA_REQUEST - Format
Data Response - Represents
CLIPRDR_FORMAT_DATA_RESPONSE - Loop
Detector - Detects and prevents clipboard synchronization loops.
- RdpCliprdr
Backend - RDP clipboard backend that bridges IronRDP and
ClipboardSink. - RdpCliprdr
Factory - Factory for creating
RdpCliprdrBackendinstances.
Enums§
- Clipboard
Event - Events generated by the clipboard backend for async processing.
- Clipboard
Message - Message sent by the OS clipboard backend event loop.
- Clipboard
RdpError - Errors that can occur during RDP clipboard operations.
Traits§
- Clipboard
Message Proxy - Proxy to send messages from the os clipboard backend to the main application event loop (e.g. winit event loop).
- Clipboard
Sink - Abstract clipboard backend interface.
Type Aliases§
- Clipboard
RdpResult - Result type for RDP clipboard operations.