Skip to content

0.1.0 - Initial Release

Choose a tag to compare

@steelbrain steelbrain released this 11 Jun 18:38
· 466 commits to main since this release

Initial release of RDPKit: a Pure Swift RDP library for Apple platforms, built around Apple media, security, and networking primitives instead of FreeRDP.

Highlights

  • Pure Swift RDP protocol implementation for macOS, iOS, tvOS, Mac Catalyst, and visionOS
  • RDPGFX graphics pipeline with AVC420/H.264, AVC444/H.264, AVC444v2, and HEVC/H.265 support
  • VideoToolbox-backed decode helpers with CoreVideo frame output
  • SwiftNIO and SwiftNIO SSL transport, including TLS upgrade on an existing RDP socket
  • Credential-aware session setup, certificate reporting, input, display control, clipboard, file transfer, audio, and render metrics
  • No FreeRDP, no native RDP core, and no non-Apple package dependencies

Installation

dependencies: [
    .package(url: "https://github.com/steelbrain/RDPKit.git", from: "0.1.0"),
]

Then add RDPKit to your target:

.target(
    name: "YourTarget",
    dependencies: ["RDPKit"]
)

Platform Requirements

  • macOS 13.0+
  • iOS 16.0+
  • tvOS 16.0+
  • Mac Catalyst 16.0+
  • visionOS 1.0+
  • Swift 6.0+

Included In This Release

Graphics

  • RDP Graphics Pipeline capability negotiation and frame parsing
  • AVC420/H.264 and AVC444/H.264 bitmap stream support
  • AVC444v2 layout handling
  • HEVC/H.265 Annex B sample preparation
  • H.264/H.265 NAL unit metadata extraction
  • VideoToolbox decode helpers with hardware acceleration reporting
  • Latest-frame decode queue for dropping stale frames when decoding falls behind
  • Frame metadata, frame acknowledgements, render metrics, and wire bandwidth samples

Session And Transport

  • TPKT and X.224 connection negotiation
  • TLS upgrade via SwiftNIO SSL
  • CredSSP negotiation reporting and credential-aware Client Info PDUs
  • MCS connect, channel join, static virtual channels, and dynamic virtual channels
  • Certificate SHA-256 reporting and configurable certificate warning visibility

Input And Display

  • Keyboard scancode and Unicode input
  • Pointer motion, buttons, extended buttons, vertical wheel, and horizontal wheel
  • Display control channel support for resize and monitor layout updates
  • HiDPI-aware display scale models for Apple clients

Clipboard, Files, And Audio

  • Unicode text clipboard support
  • File Group Descriptor W parsing and encoding
  • Remote file contents requests and responses
  • Local-to-remote and remote-to-local clipboard file transfer plumbing
  • RDPSND static channel support
  • PCM format negotiation
  • Wave info, wave data, Wave2, training, quality mode, and wave confirm PDUs

Example App And Tools

  • Native macOS RDPClient example app
  • Certificate warning review and trust handling
  • Keychain-backed saved connections
  • Clipboard and audio toggles
  • Stats for Nerds diagnostics window
  • RDPPreflight protocol inspection tool
  • RDPFirstFrameCapture live graphics capture tool
  • Mock KRdp server tests for CI-friendly validation