Expand description
§Iron Remote Desktop — Helper Crate
Helper crate for building WASM modules compatible with the iron-remote-desktop web component.
Implement the RemoteDesktopApi trait on a Rust type and call make_bridge! on it to generate
the WASM API expected by iron-remote-desktop.
See the ironrdp-web crate for a complete example.
§Design Philosophy
iron-remote-desktop is protocol-agnostic. The traits in this crate (Session,
SessionBuilder) define only features that are universal across all remote protocols:
input, rendering, clipboard, resize, and connection lifecycle.
Protocol-specific features must not be added to these traits. They belong in the backend crate and must be surfaced via the extension mechanism:
Session::invoke_extension/SessionBuilder::extensionare the pass-through points.- This crate defines a concrete
Extensiontype used by the traits; each backend defines its own extension identifiers and payload formats and interprets the values carried insideExtension. iron-remote-desktoptreatsExtensionas an opaque envelope and never inspects backend-specific extension values.
A method belongs in these traits if either of the following is true:
- The web component itself needs to call it to implement transparent, protocol-independent
behaviour (e.g.,
supports_unicode_keyboard_shortcutsis called by the component to adapt keyboard handling, without the consumer being involved). - The feature is universal — every reasonable remote protocol backend would implement it in a meaningful way (e.g., resize, clipboard text, cursor style).
If neither applies, the method is protocol-specific and must go through extensions.
Macros§
Structs§
- Desktop
Size - Extension
- RDClean
Path Details - Detailed error information for RDCleanPath errors.