List of language bindings for GTK+
As shown in the table below, GTK+ has a range of bindings for various languages[1] that implement some or all of its feature set.
| Language |
Name |
Supported? |
License |
Notes |
| 2.24 |
3.12 |
GIR |
Official |
| Ada |
GtkAda |
Partial | Partial | No | No |
GPL-3 |
Supported up to 3.8.[3] |
| C |
GTK+ |
Yes | Yes | N/A | Yes |
LGPL-2.1 |
Native, no binding needed. |
| C++ |
gtkmm |
Yes | Yes | No | Yes |
LGPL-2.1 |
|
| C# and other CLI languages |
Gtk# |
Partial | Partial | No | Yes |
LGPL-2.1 |
Supported up to 2.12. 3.0 support is in development.[4] |
| D |
GtkD |
Yes | Yes | No | No |
LGPL-3 with exceptions[5] |
Supported since 2.12 |
| Erlang |
gtknode |
Partial | No | No | No |
MIT[6] |
No, partially supported up to 2.16 |
| Fortran |
gtk-fortran |
Partial | Partial | No | No |
GPL-3 |
Partially supported since 2.24. Was supported from 2.12 until 2.18 |
| FreeBASIC |
FreeBASIC GTK+ bindings |
Yes | Partial | No | No |
LGPL-3 with exception |
Supported up to 3.4 and since 2.8, integrated into the core distribution. |
| Gambas |
Gambas gb.gtk component |
Partial | No | No | No |
GPL-2 |
GTK+ 3 support is in development |
| Genie |
Genie |
Yes | Yes | Yes | Yes |
LGPL-2.1 |
language written for GObject system |
| Go |
go-gtk |
Partial | No | No | No |
BSD/LGPL-2.1 |
No, partially supported on 2.24 |
| gotk3 |
No | Partial | No | No |
ISC[7] |
|
| gogobject |
No | Partial | Yes | No |
MIT |
|
| Guile |
guile-gnome |
Partial | No | No | No |
GPL-2 |
supported up to 2.12, partially supported on 2.14 |
| Haskell |
Gtk2Hs |
Yes | Yes | No | No |
LGPL-2.1 |
Gtk2Hs is a set of Haskell bindings to many of the libraries included in the GTK+/GNOME platform. |
| J |
J GTK addon |
Partial | No | No | No |
GPL-3 |
|
| Java and other JVM languages |
java-gnome |
Yes | Yes | No | Yes |
GPL-2 with exception |
Unavailable on Microsoft Windows |
| Julia |
Gtk.jl |
Yes | Yes | No | No |
MIT |
Includes Glib support |
| JavaScript |
Gjs |
Yes | Yes | Yes | Yes |
MIT |
GNOME wiki, based on Mozilla's SpiderMonkey |
| Seed |
Yes | Yes | Yes | Yes |
LGPL-2.1 |
GNOME wiki, based on WebKit's JavaScriptCore |
| Lua |
LGI |
Partial | Yes | Yes | No |
MIT[8] |
Dynamic Lua binding to GObject libraries using GObject-Introspection. |
| lgob |
No | Yes | Yes | No |
LGPL-3 |
lgob provides bindings of GObject-based libraries for Lua 5.1. |
| OCaml |
LablGtk |
Partial | No | No | No |
LGPL-2.1 with exception |
No, supported up to 2.16 |
| ooRexx |
RexxGTK |
Partial | No | No | No |
CPL |
Yes, 2.0 or later |
| Objective-C |
CoreGTK |
No | Partial | No | No |
LGPL-2.1 |
|
| ObGTK |
Partial | No | No | No |
LGPL-2.1 |
|
| Objective-C GTK |
Partial | No | No | No |
LGPL-2.1 |
|
| Pascal |
Free Pascal gtk package |
Yes | Yes | No | No |
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.[9] |
| Perl |
Gtk2-Perl |
Yes | Yes | Yes | Yes |
LGPL-2.1 |
|
| PHP |
PHP-GTK |
Partial | Partial[10] | No | No |
LGPL-2.1 |
|
| Prolog |
PLGI |
Partial | Yes | Yes | No |
LGPL-2.1 |
Dynamic Prolog binding to GObject libraries using GObject-Introspection. |
| Python |
pgi |
Partial | Partial | Yes | No |
LGPL-2.1 |
GObject Introspection Bindings for PyPy. |
| pygir-ctypes |
Partial | Partial | Yes | No |
BSD |
Pure Python GObject Introspection Repository (GIR) wrapper using ctypes. |
| PyGObject |
Yes | Yes | Yes | Yes |
LGPL-2.1 |
since 2.22[11] |
| PyGTK |
Yes | No | No | Yes |
LGPL-2.1 |
static bindings, use PyGObject |
| R |
RGtk2 |
Partial | No | No | No |
GPL-2 |
RGtk2.pdf |
| Ruby |
GirFFI-Gtk |
Partial | Partial | Yes | No |
LGPL-2.1 |
GirFFI-based bindings for Gtk+. Supports both Gtk+ 2 and Gtk+ 3. |
| Ruby-GNOME2 |
Partial | Yes | No | No |
MIT License |
Partial, supported up to 2.12, partially supported since 2.14[12] |
| Rust |
gtk-rs |
No | Yes | Yes | No |
LGPL-2.1 |
|
| gi-rust |
No | Yes | Yes | No |
LGPL-2.1 |
|
| Smalltalk |
GNU Smalltalk GTK+ bindings |
Yes | No | No | No |
GPL-2 |
|
| Smalltalk YX GTK+ plugin |
Yes | No | No | No |
MIT |
|
| SqueakGtk |
Partial | No | No | No |
MIT |
|
| Tcl |
Gnocl |
Yes | No | No | No |
BSD |
|
| Vala |
Vala |
Yes | Yes | Yes | Yes |
LGPL-2.1 |
language written for GObject system |
| Wrapl |
Wrapl GTK+ module |
Partial | No | No | No |
GPL-3 |
No, but almost full up to 2.22 |
See also
References