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]
Crystal crystal-gobject ? ? Yes No Apache-2.0
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-gir-generator ? ? Yes No GPL-3
gotk3 No Partial No No ISC[7]
Guile guile-gnome Partial No No No GPL-2 supported up to 2.12, partially supported on 2.14
Haskell Gtk2Hs Yes Partial 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 PartialNo 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

This article is issued from Wikipedia - version of the 8/13/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.