RoyalVNC is a modern, high performance implementation of the VNC/RFB protocol written in Swift. The SDK (RoyalVNCKit) is compatible with Swift and Objective-C on macOS, iOS and iPadOS. It has no external dependencies but includes some free (public domain) third party code from the libtommath and D3DES libraries (see Credits).
Security Types (Authentication Methods)
- No Authentication
- VNC Password
- Apple Remote Desktop
- UltraVNC MS-Logon II
- Support for 8-bit, 16-bit and 24/32-bit color depths with high-performance framebuffer implementations.
- Clipboard redirection support for text in both ways (remote to local and local to remote).
- Connection state management and rendering is decoupled from each other, so it’s possible to build “headless” clients (ie. no rendering of the remote desktop).
- The SDK includes a ready-to-use implementation of a framebuffer view for macOS (subclass of
NSView), which also handles mouse and keyboard input, local cursor (
NSCursor), scaling and rendering. The iOS/iPadOS equivalent (
UIView) is a work-in-progress.
- First-class error handling. The
VNCErrortype divides all possible errors into three broad categories: Protocol, Authentication and Connection errors. There are helper functions to retrieve human-readable descriptions for all errors and a convenience functions that allows the SDK consumer to distinguish between errors that should be displayed to the user and ones that shouldn’t.
- The repository contains Demo/Sample clients for macOS (one written in Swift, one in Objective-C) and iOS/iPadOS.