https://github.com/iomega8561/easyvnc
A minimal VNC client built with SwiftUI in mind, based off libvncclient.
https://github.com/iomega8561/easyvnc
libvncserver macos objective-c remote-control remote-desktop swift swiftui virtualization vnc
Last synced: 2 months ago
JSON representation
A minimal VNC client built with SwiftUI in mind, based off libvncclient.
- Host: GitHub
- URL: https://github.com/iomega8561/easyvnc
- Owner: iOmega8561
- License: unlicense
- Created: 2025-03-31T15:32:03.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-31T16:00:25.000Z (about 1 year ago)
- Last Synced: 2025-03-31T16:59:32.265Z (about 1 year ago)
- Topics: libvncserver, macos, objective-c, remote-control, remote-desktop, swift, swiftui, virtualization, vnc
- Language: Swift
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EasyVNC
**EasyVNC** is a minimal VNC client built in **SwiftUI**, leveraging `libvncclient` from [LibVNCServer](https://github.com/LibVNC/libvncserver) via an Objective-C++ wrapper.
The goal of this project is to provide a lightweight, native macOS VNC viewer with essential functionality and a clean SwiftUI interface.

## 🚀 Features
- 🔌 Connect to a VNC server via IP and port
- 🖥️ Render the remote framebuffer in a SwiftUI view
- 🖱️ Send basic mouse events (click and scroll)
- ⌨️ Send basic keyboard inputs
- 🔓 Supports basic **VNC Password** and **plain VeNCrypt**
> [!IMPORTANT]
> VNC is based on a very old protocol. Nowadays it really is not considered safe to expose a VNC server to the internet. Due to this fact, EasyVNC is designed to **not support** encrypted connection with **SSL** or **TLS**. If you want to host a VNC server, my personal recommendation is to expose it behind a modern and secure VPN.
## 📦 Tech Stack
- **SwiftUI** for the user interface
- **Objective-C++** bridge for low-level C integration
- **libvncclient** (from LibVNCServer) for VNC protocol handling
- **CoreGraphics** for framebuffer rendering
## 📋 Requirements
- macOS 13.0+
- Xcode 14.1+
- Dependencies:
- `libvncclient` (compiled statically)
- `zlib`
- `libjpeg` or `libjpeg-turbo`
## 🛠 Build Notes
Make sure to run ```Third-Party/setup-dependencies.sh```, then link the resulting `.a` and headers into your Xcode project
## Privacy
EasyVNC respects your privacy and does not collect, store, or transmit any personal information or user data. The application only connects to the internet if the user wants to access external VNC servers.