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 PartialPartialYesNo GPL-3 Supported up to 3.14.[3][4]
C GTK YesYesN/AYes LGPL-2.1 Native, no binding needed.
C++ gtkmm YesYesNoYes LGPL-2.1
C# and other CLI languages Gtk# PartialPartialNoYes LGPL-2.1 Supported up to 2.12. 3.0 support is in development.[5]
Crystal crystal-gobject ??YesNo Apache-2.0
D GtkD YesYesYesNo LGPL-3 with exceptions[6] Supported since 2.12
Erlang gtknode PartialNoNoNo MIT[7] No, partially supported up to 2.16
Fortran gtk-fortran PartialPartialNoNo GPL-3 Partially supported since 2.24. Was supported from 2.12 until 2.18
FreeBASIC FreeBASIC GTK+ bindings YesPartialNoNo LGPL-3 with exception Supported up to 3.4 and since 2.8, integrated into the core distribution.
Gambas Gambas gb.gtk component PartialNoNoNo GPL-2 GTK+ 3 support is in development
Genie Genie YesYesYesYes LGPL-2.1 language written for GObject system
Go go-gir-generator ??YesNo GPL-3
gotk3 NoPartialNoNo ISC[8]
Guile guile-gnome PartialNoNoNo GPL-2 supported up to 2.12, partially supported on 2.14
Haskell Gtk2Hs YesPartialNoNo LGPL-2.1 Gtk2Hs is a set of Haskell bindings to many of the libraries included in the GTK+/GNOME platform.
haskell-gi NoYesYesNo LGPL-2.1 Generate Haskell bindings for GObject Introspection capable libraries
J J GTK addon PartialNoNoNo GPL-3
Java and other JVM languages java-gnome YesYesNoYes GPL-2 with exception Unavailable on Microsoft Windows
Julia Gtk.jl YesYesNoNo MIT Includes Glib support
JavaScript Gjs YesYesYesYes MIT GNOME wiki, based on Mozilla's SpiderMonkey
Seed YesYesYesYes LGPL-2.1 GNOME wiki, based on WebKit's JavaScriptCore
Lua LGI PartialYesYesNo MIT[9] Dynamic Lua binding to GObject libraries using GObject-Introspection.
lgob NoYesYesNo LGPL-3 lgob provides bindings of GObject-based libraries for Lua 5.1.
OCaml LablGtk PartialNoNoNo LGPL-2.1 with exception No, supported up to 2.16
ooRexx RexxGTK PartialNoNoNo CPL Yes, 2.0 or later
Objective-C CoreGTK NoPartialNoNo LGPL-2.1
ObGTK PartialNoNoNo LGPL-2.1
Objective-C GTK PartialNoNoNo LGPL-2.1
Pascal Free Pascal gtk package YesYesNoNo 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.[10]
Perl Gtk2-Perl YesYesYesYes LGPL-2.1
PHP PHP-GTK PartialPartial[11]NoNo LGPL-2.1 PHP until 5.2, GTK is GTK2
Prolog PLGI PartialYesYesNo LGPL-2.1 Dynamic Prolog binding to GObject libraries using GObject-Introspection.
Python pgi PartialPartialYesNo LGPL-2.1 GObject Introspection Bindings for PyPy.
pygir-ctypes PartialPartialYesNo BSD Pure Python GObject Introspection Repository (GIR) wrapper using ctypes.
PyGObject YesYesYesYes LGPL-2.1 since 2.22[12]
PyGTK YesNoNoYes LGPL-2.1 static bindings, use PyGObject
R RGtk2 PartialNoNoNo GPL-2 RGtk2.pdf
Ruby GirFFI-Gtk PartialPartialYesNo LGPL-2.1 GirFFI-based bindings for Gtk+. Supports both Gtk+ 2 and Gtk+ 3.
Ruby-GNOME2 PartialYesNoNo MIT License Partial, supported up to 2.12, partially supported since 2.14[13]
Rust gtk-rs NoYesYesNo MIT[14]
gi-rust NoYesYesNo LGPL-2.1
Smalltalk GNU Smalltalk GTK+ bindings YesNoNoNo GPL-2
Smalltalk YX GTK+ plugin YesNoNoNo MIT
SqueakGtk PartialNoNoNo MIT
Tcl Gnocl YesNoNoNo BSD
Vala Vala YesYesYesYes LGPL-2.1 language written for GObject system
Wrapl Wrapl GTK+ module PartialNoNoNo GPL-3 No, but almost full up to 2.22

See also


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.