Skip to content

Conversation

@devolutionsbot
Copy link
Contributor

@devolutionsbot devolutionsbot commented Jan 13, 2026

πŸ€– New release

  • ironrdp-error: 0.1.3 -> 0.2.0 (⚠ API breaking changes)
  • ironrdp-pdu: 0.7.0 -> 0.7.1 (βœ“ API compatible changes)
  • ironrdp-svc: 0.6.0 -> 0.6.1 (βœ“ API compatible changes)
  • ironrdp-connector: 0.8.0 -> 0.9.0 (⚠ API breaking changes)
  • ironrdp-cliprdr: 0.5.0 -> 0.6.0 (⚠ API breaking changes)
  • ironrdp-tokio: 0.8.0 -> 0.8.1 (βœ“ API compatible changes)
  • ironrdp-server: 0.10.0 -> 0.10.1 (βœ“ API compatible changes)
  • ironrdp-bulk: 0.1.0
  • ironrdp-session: 0.8.0 -> 0.9.0 (⚠ API breaking changes)
  • ironrdp: 0.14.0 -> 0.14.1 (βœ“ API compatible changes)
  • ironrdp-rdpsnd-native: 0.5.0 -> 0.5.1 (βœ“ API compatible changes)
  • ironrdp-dvc-com-plugin: 0.1.0
  • ironrdp-egfx: 0.1.0
  • ironrdp-rdpdr-native: 0.5.0 -> 0.5.1 (βœ“ API compatible changes)
  • ironrdp-core: 0.1.5 -> 0.1.6
  • ironrdp-async: 0.8.0 -> 0.8.1
  • ironrdp-acceptor: 0.8.0 -> 0.8.1
  • ironrdp-rdpdr: 0.5.0 -> 0.5.1
  • ironrdp-blocking: 0.8.0 -> 0.8.1
  • ironrdp-cliprdr-native: 0.5.0 -> 0.5.1

⚠ ironrdp-error breaking changes

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field context of struct Error, previously in file /tmp/.tmpqC3KJO/ironrdp-error/src/lib.rs:26
  field kind of struct Error, previously in file /tmp/.tmpqC3KJO/ironrdp-error/src/lib.rs:27

--- failure struct_pub_field_now_doc_hidden: pub struct field is now #[doc(hidden)] ---

Description:
A pub field of a pub struct is now marked #[doc(hidden)] and is no longer part of the public API.
        ref: https://doc.rust-lang.org/rustdoc/write-documentation/the-doc-attribute.html#hidden
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/struct_pub_field_now_doc_hidden.ron

Failed in:
  field Error.context in file /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-error/src/lib.rs:25
  field Error.kind in file /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-error/src/lib.rs:25

⚠ ironrdp-connector breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ConnectionResult.compression_type in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-connector/src/connection.rs:31
  field Config.alternate_shell in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-connector/src/lib.rs:215
  field Config.work_dir in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-connector/src/lib.rs:217
  field Config.compression_type in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-connector/src/lib.rs:253
  field Config.multitransport_flags in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-connector/src/lib.rs:263

⚠ ironrdp-cliprdr breaking changes

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/enum_variant_added.ron

Failed in:
  variant ClipboardMessage:SendLockClipboard in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-cliprdr/src/backend.rs:39
  variant ClipboardMessage:SendUnlockClipboard in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-cliprdr/src/backend.rs:44
  variant ClipboardMessage:SendFileContentsRequest in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-cliprdr/src/backend.rs:49
  variant ClipboardMessage:SendFileContentsResponse in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-cliprdr/src/backend.rs:54

⚠ ironrdp-session breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ProcessorBuilder.bulk_decompressor in /tmp/.tmp8fsHGp/IronRDP/crates/ironrdp-session/src/fast_path.rs:514
Changelog

ironrdp-error

[0.2.0] - 2026-02-12

Bug Fixes

ironrdp-pdu

[0.7.1] - 2026-02-12

Features

  • Add Initiate Multitransport Request/Response PDU types (#1091) (5a50f4099b)

    Add MultitransportRequestPdu and MultitransportResponsePdu types for the
    sideband UDP transport bootstrapping PDUs defined in MS-RDPBCGR
    2.2.15.1 and 2.2.15.2. Needed to decode/encode the IO channel messages that
    initiate UDP transport setup.

ironrdp-svc

[0.6.1] - 2026-02-12

Features

  • Add SvcMessage::encode_unframed_pdu for headerless encoding (#1093) (a21378e16a)

ironrdp-connector

[0.9.0] - 2026-02-12

Security

  • Add alternate_shell and work_dir configuration support (#1095) (a33d27fe67)

    Add support for configuring alternate_shell and work_dir fields in
    ClientInfoPdu, which are used by:

    • CyberArk PSM (Privileged Session Manager) for session tokens
    • Remote application scenarios (RemoteApp)
    • Custom shell configurations

Features

  • Add bulk compression and wire negotiation (ebf5da5f33)

    • add ironrdp-bulk crate with MPPC/NCRUSH/XCRUSH, bitstream, benches, and metrics
    • advertise compression in Client Info and plumb compression_type through connector
    • decode compressed FastPath/ShareData updates using BulkCompressor
    • update CLI to numeric compression flags (enabled by default, level 0-3)
    • extend screenshot example with compression options and negotiated logging
    • refresh tests, FFI/web configs, typos, and Cargo.lock
  • Advertise multitransport channel in GCC blocks (#1092) (4f5fdd3628)

    Add multitransport_flags config option to populate the
    MultiTransportChannelData GCC block during connection negotiation.
    When None (the default), behavior is unchanged.

Bug Fixes

ironrdp-cliprdr

[0.6.0] - 2026-02-12

Features

  • Add clipboard data locking methods (#1064) (58c3df84bb)

    Per [MS-RDPECLIP sections 2.2.4.6 and 2.2.4.7][lock-spec], the Local
    Clipboard
    Owner may lock the Shared Clipboard Owner's clipboard data before
    requesting
    file contents to ensure data stability during multi-request transfers.

    This enables server implementations to safely request file data from
    clients
    when handling clipboard paste operations.

ironrdp-tokio

[0.8.1] - 2026-02-12

Security

  • Add DVC COM plugin loader for native Windows DVC client plugins (9c987bcb40)

    Implements support for loading and using native Windows Dynamic Virtual
    Channel (DVC) client plugin DLLs through the COM-based IWTSPlugin API.
    This enables IronRDP to leverage existing Windows DVC plugins such as
    webauthn.dll for hardware security key support via RDP.

    New crate: ironrdp-dvc-com-plugin

    • Implements IWTSVirtualChannelManager and IWTSVirtualChannel COM interfaces
    • Manages plugin lifecycle on dedicated COM worker thread
    • Handles channel open/close/reopen cycles with per-instance write callbacks
    • Properly bridges between COM synchronous calls and IronRDP's async runtime

    Client integration:

    • Add --dvc-plugin CLI argument to ironrdp-client
    • Load plugins in both TCP and WebSocket connection paths
    • Windows-only conditional compilation for cross-platform builds

    Additional fixes:

    • Fix pre-existing crash in ironrdp-tokio KDC handler on 64-bit Windows
      (usize to u32 conversion in reqwest.rs)
    • Add proper error handling using try_from instead of unsafe as casts
    • All changes pass cargo fmt and cargo clippy with strict pedantic lints

    Tested with: C:\Windows\System32\webauthn.dll

ironrdp-server

[0.10.1] - 2026-02-12

Features

  • Add clipboard data locking methods (#1064) (58c3df84bb)

    Per [MS-RDPECLIP sections 2.2.4.6 and 2.2.4.7][lock-spec], the Local
    Clipboard
    Owner may lock the Shared Clipboard Owner's clipboard data before
    requesting
    file contents to ensure data stability during multi-request transfers.

    This enables server implementations to safely request file data from
    clients
    when handling clipboard paste operations.

ironrdp-bulk

[0.1.0] - 2026-02-12

Features

  • Add bulk compression and wire negotiation (ebf5da5f33)

    • add ironrdp-bulk crate with MPPC/NCRUSH/XCRUSH, bitstream, benches, and metrics
    • advertise compression in Client Info and plumb compression_type through connector
    • decode compressed FastPath/ShareData updates using BulkCompressor
    • update CLI to numeric compression flags (enabled by default, level 0-3)
    • extend screenshot example with compression options and negotiated logging
    • refresh tests, FFI/web configs, typos, and Cargo.lock

ironrdp-session

[0.9.0] - 2026-02-12

Features

  • Add bulk compression and wire negotiation (ebf5da5f33)

    • add ironrdp-bulk crate with MPPC/NCRUSH/XCRUSH, bitstream, benches, and metrics
    • advertise compression in Client Info and plumb compression_type through connector
    • decode compressed FastPath/ShareData updates using BulkCompressor
    • update CLI to numeric compression flags (enabled by default, level 0-3)
    • extend screenshot example with compression options and negotiated logging
    • refresh tests, FFI/web configs, typos, and Cargo.lock

Bug Fixes

ironrdp

[0.14.1] - 2026-02-12

Security

  • Add alternate_shell and work_dir configuration support (#1095) (a33d27fe67)

    Add support for configuring alternate_shell and work_dir fields in
    ClientInfoPdu, which are used by:

    • CyberArk PSM (Privileged Session Manager) for session tokens
    • Remote application scenarios (RemoteApp)
    • Custom shell configurations

Features

  • Add bulk compression and wire negotiation (ebf5da5f33)

    • add ironrdp-bulk crate with MPPC/NCRUSH/XCRUSH, bitstream, benches, and metrics
    • advertise compression in Client Info and plumb compression_type through connector
    • decode compressed FastPath/ShareData updates using BulkCompressor
    • update CLI to numeric compression flags (enabled by default, level 0-3)
    • extend screenshot example with compression options and negotiated logging
    • refresh tests, FFI/web configs, typos, and Cargo.lock
  • Advertise multitransport channel in GCC blocks (#1092) (4f5fdd3628)

    Add multitransport_flags config option to populate the
    MultiTransportChannelData GCC block during connection negotiation.
    When None (the default), behavior is unchanged.

ironrdp-rdpsnd-native

[0.5.1] - 2026-02-12

Build

ironrdp-dvc-com-plugin

[0.1.0] - 2026-02-12

Security

  • Add DVC COM plugin loader for native Windows DVC client plugins (9c987bcb40)

    Implements support for loading and using native Windows Dynamic Virtual
    Channel (DVC) client plugin DLLs through the COM-based IWTSPlugin API.
    This enables IronRDP to leverage existing Windows DVC plugins such as
    webauthn.dll for hardware security key support via RDP.

    New crate: ironrdp-dvc-com-plugin

    • Implements IWTSVirtualChannelManager and IWTSVirtualChannel COM interfaces
    • Manages plugin lifecycle on dedicated COM worker thread
    • Handles channel open/close/reopen cycles with per-instance write callbacks
    • Properly bridges between COM synchronous calls and IronRDP's async runtime

    Client integration:

    • Add --dvc-plugin CLI argument to ironrdp-client
    • Load plugins in both TCP and WebSocket connection paths
    • Windows-only conditional compilation for cross-platform builds

    Additional fixes:

    • Fix pre-existing crash in ironrdp-tokio KDC handler on 64-bit Windows
      (usize to u32 conversion in reqwest.rs)
    • Add proper error handling using try_from instead of unsafe as casts
    • All changes pass cargo fmt and cargo clippy with strict pedantic lints

    Tested with: C:\Windows\System32\webauthn.dll

ironrdp-egfx

[0.1.0] - 2026-02-12

Features

Added

  • Initial release
  • MS-RDPEGFX PDU types (all 23 PDUs)
  • Client-side DVC processor
  • Server-side implementation with:
    • Multi-surface management (Offscreen Surfaces ADM element)
    • Frame tracking with flow control (Unacknowledged Frames ADM element)
    • V8/V8.1/V10/V10.1-V10.7 capability negotiation
    • AVC420 and AVC444 frame sending
    • QoE metrics processing
    • Cache import handling
    • Resize coordination

ironrdp-rdpdr-native

[0.5.1] - 2026-02-12

Build


This PR was generated with release-plz.

@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 75264f1 to 4170c6a Compare January 13, 2026 16:47
@github-actions
Copy link

github-actions bot commented Jan 13, 2026

Coverage Report πŸ€– βš™οΈ

Past:
Total lines: 35729
Covered lines: 22486 (62.93%)

New:
Total lines: 35729
Covered lines: 22496 (62.96%)

Diff: +0.03%

[this comment will be updated automatically]

@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 4170c6a to 7b484a3 Compare January 13, 2026 17:04
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 7b484a3 to 92e7d47 Compare January 13, 2026 17:04
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 92e7d47 to c0b9f17 Compare January 13, 2026 17:38
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from c0b9f17 to 35dace6 Compare January 13, 2026 17:38
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 35dace6 to 1964a54 Compare January 13, 2026 17:44
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 1964a54 to 62d5833 Compare January 13, 2026 17:44
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 62d5833 to 53bf6d9 Compare January 13, 2026 18:03
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 53bf6d9 to 7b96770 Compare January 13, 2026 18:03
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 7b96770 to 8b806f3 Compare January 16, 2026 20:32
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 8b806f3 to 46686b5 Compare January 16, 2026 20:33
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 46686b5 to b7e8a11 Compare January 19, 2026 20:12
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from b7e8a11 to 74a0d82 Compare January 19, 2026 20:13
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 74a0d82 to 346803f Compare January 20, 2026 14:56
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 346803f to 59cd5bc Compare January 20, 2026 14:56
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 59cd5bc to b801fe6 Compare January 20, 2026 15:58
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from b801fe6 to 1bab4d0 Compare January 20, 2026 15:58
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 1bab4d0 to 1c03a2c Compare January 28, 2026 13:17
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 1c03a2c to 2dd7b9e Compare January 28, 2026 13:17
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 2dd7b9e to 93ceb96 Compare January 28, 2026 13:32
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 93ceb96 to 81b5846 Compare January 28, 2026 13:32
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 81b5846 to 2f9048b Compare February 3, 2026 11:38
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 2f9048b to 9eb5685 Compare February 3, 2026 11:38
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 9eb5685 to 81becbd Compare February 9, 2026 20:31
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 81becbd to a1f7a51 Compare February 9, 2026 20:31
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from a1f7a51 to 0f265c4 Compare February 10, 2026 21:56
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 0f265c4 to 955672b Compare February 10, 2026 21:56
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 955672b to 4882c33 Compare February 12, 2026 13:52
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 4882c33 to 964c9eb Compare February 12, 2026 13:52
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 964c9eb to 36dfb9f Compare February 12, 2026 14:03
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 36dfb9f to d93e56f Compare February 12, 2026 14:03
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from d93e56f to 32a82f9 Compare February 12, 2026 14:41
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 32a82f9 to e2eb38b Compare February 12, 2026 14:41
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from e2eb38b to 4ff4c83 Compare February 12, 2026 14:59
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 4ff4c83 to 9a228d7 Compare February 12, 2026 14:59
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 9a228d7 to 8d44f19 Compare February 12, 2026 17:30
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 8d44f19 to 45998af Compare February 12, 2026 17:30
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 45998af to 36ada57 Compare February 12, 2026 17:41
@github-actions github-actions bot force-pushed the release-plz/2026-01-13T16-47-19Z branch from 36ada57 to c994acb Compare February 12, 2026 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant