Repository navigation
0.1.0 - Initial 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