gtk-vnc is a VNC viewer widget for GTK. It is built using coroutines allowing it to be completely asynchronous while remaining single threaded. It provides a core C library, and bindings for Python (PyGTK).
The API is still in early stages of development & so until version 1.0 is declared, the API may change. The primary public API is provided by the vncdisplay.h class & should be reasonably free of API churn. The other header files are internal VNC protocol implementation & will very likely change.
GTK-VNC supports a number of VNC extensions aimed at improving the user experience, particularly when interacting with virtual machines.
Released versions can be found at GNOME FTP servers: http://download.gnome.org/sources/gtk-vnc
You can check out the current development snapshot using:
git clone https://gitlab.gnome.org/GNOME/gtk-vnc.git
If you have a GNOME SSH account:
git clone firstname.lastname@example.org:GNOME/gtk-vnc.git