LibVNC/libvncserver
FreeLibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
About LibVNC/libvncserver
LibVNCServer and LibVNCClient are cross-platform C libraries that simplify the implementation of VNC server or client functionality in applications. They support the RFB (Remote Frame Buffer) protocol with a wide range of security types (VNC Authentication, SASL, MSLogon, Apple ARD, TLS, VeNCrypt, UltraVNC MSLogonII), encodings (Raw, CopyRect, RRE, Hextile, Tight, ZRLE, etc.), and transports (RFB, encrypted RFB via VeNCrypt or AnonTLS, WebSockets, and encrypted WebSockets). The libraries use CMake for building and offer multiple crypto backends (OpenSSL, Libgcrypt, or a minimal built-in option) as well as TLS support via OpenSSL or GnuTLS. They are open source, actively maintained on GitHub, and used in many projects for remote administration, remote desktop, and in-browser VNC access.
Key Features
Pros & Cons
- Easily integrates VNC functionality into C/C++ programs
- Cross-platform: works on Linux, Windows, macOS, Android, and more
- Comprehensive RFB protocol support with many security and encoding options
- Supports WebSockets and encrypted connections for modern use cases
- Open source with a long history and active community on GitHub
- Requires C programming knowledge to integrate and use
- Some authentication methods need external cryptographic libraries (OpenSSL or Libgcrypt)
- Compilation and setup may be non-trivial for beginners
- Documentation primarily resides on GitHub and may be sparse in some areas