As shown in the table below, GTK has a range of bindings for various programming languages that implement some or all of its feature set. GTK 2 is unsupported now, so some languages below lack current GTK support.

GObject (GOB) was initially written as a central component of GTK, but outsourced into GLib. GObject Introspection is a middleware layer between C libraries (using GObject) and language bindings, e.g. PyGObject uses this, while PyGTK does not. Official GNOME Bindings follow the GNOME release schedule which guarantees API stability and time-based releases. Glade Interface Designer

Language Name Supported? License Notes 2.24 3.12 4.0 GIR Ada GtkAda ? GPL-3 Supported up to 3.14. C GTK LGPL-2.1 Native, no binding needed. C++ gtkmm LGPL-2.1 C# and other CLI languages GtkSharp LGPL-2.1 Support for GTK 3 is available up to 3.22. Gir.Core MIT Crystal crystal-gobject BSD gtk4.cr MIT D GtkD LGPL-3 with exceptions Supported since 2.12 Erlang gtknode MIT No, partly supported up to 2.16 Fortran gtk-fortran GPL-3 Supported since 2.24. Supports GTK 3 and GTK 4. FreeBASIC FreeBASIC GTK bindings LGPL-3 with exception Supported up to 3.4 and since 2.8, integrated into the core distribution. Gambas Gambas gb.gtk component ? GPL-2 Secondary to the primary Qt components Genie Genie LGPL-2.1 language written for GObject system Go go-gir-generator ? GPL-3 gotk3 ? ISC Guile guile-gnome ? GPL-2 supported up to 2.12, partly supported on 2.14 Haskell Gtk2Hs ? LGPL-2.1 Gtk2Hs is a set of Haskell bindings to many of the libraries included in the GTK/GNOME platform. haskell-gi LGPL-2.1 Generate Haskell bindings for GObject Introspection capable libraries J ? GPL-3 Java and other JVM languages java-gnome GPL-2 with exception Unavailable on Microsoft Windows Java-GI LGPL-2.1 Works with OpenJDK 25 or later Julia Gtk4.jl MIT Includes Glib support JavaScript Gjs MIT GNOME wiki, based on Mozilla's SpiderMonkey Node-Gtk MIT Seed ? LGPL-2.1 GNOME wiki, based on WebKit's JavaScriptCoreKotlin/Native gtk-kt AGPL-3.0 gtk-kn LGPL-3 Lua LGI MIT lgob ? LGPL-3 Nimgintro MIT OCaml LablGtk ? LGPL-2.1 with exception Supported up to 2.16 ooRexx RexxGTK ? CPL Yes, 2.0 or later Objective-C CoreGTK ? LGPL-2.1 ObGTK ? LGPL-2.1 Objective-C GTK ? LGPL-2.1 Pascal Free Pascal gtk package ? LGPL-3 with exception Supported up to 2.24, integrated into the core distribution. Gtk 3.0 bindings are being developed in the Lazarus-ccr project. Perl Gtk2-Perl LGPL-2.1 PHP PHP-GTK ? LGPL-2.1 PHP until 5.2, GTK is GTK2 Prolog PLGI ? LGPL-2.1 Python pgi ? LGPL-2.1 GObject Introspection Bindings for PyPy. pygir-ctypes ? BSD PyGObject LGPL-2.1 since 2.22 PyGTK LGPL-2.1 R RGtk2 ? GPL-2 RGtk2.pdf Racket gir??? MIT Ruby GirFFI-Gtk ? LGPL-2.1 Ruby-GNOME2 MIT License Partial, supported up to 2.12, partly supported since 2.14 Rust gtk-rs MIT gi-rust ? LGPL-2.1 Smalltalk GNU Smalltalk GTK+ bindings ? GPL-2 Smalltalk YX GTK plugin ? MIT SqueakGtk ? MIT Standard ML Giraffe Library ? LGPL-2.1 Tcl Gnocl ? BSD Vala Vala LGPL-2.1 Language written for GObject system Wrapl Wrapl GTK+ module ? GPL-3 No, but almost full up to 2.22

See also List of language bindings for Qt 4 List of language bindings for Qt 5 List of language bindings for wxWidgets

References