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.
- 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.[2]
- 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 | 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. |
haskell-gi | No | Yes | Yes | No | LGPL-2.1 | Generate Haskell bindings for GObject Introspection capable libraries | |
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
- List of language bindings for Qt 4
- List of language bindings for Qt 5
- List of language bindings for wxWidgets
References
- ↑ "GTK+ Language Bindings". The GTK+ Project. Retrieved 2013-05-18.
- ↑ "GObject Introspection".
- ↑ http://docs.adacore.com/gtkada-docs/gtkada_ug/_build/html/intro.html
- ↑ http://ftp.gnome.org/pub/gnome/sources/gtk-sharp/2.99/gtk-sharp-2.99.2.news
- ↑ "GtkD License LGPL-3 with additional exceptions".
- ↑ "gtknode license".
- ↑ "gotk3 license".
- ↑ "LGI license".
- ↑ http://wiki.freepascal.org/Gtk%2B3
- ↑ Alexandre Pereira Bühler (2015-06-22). "Attention: created branch dev-php-gtk3". PHP-GTK General Mailing List.
- ↑ "PyGObject History". Retrieved 2013-08-29.
- ↑ Ruby-GNOME2 Project Team. "gtk3 / Rubygems". Retrieved 2013-05-07.
This article is issued from
Wikipedia.
The text is licensed under Creative Commons - Attribution - Sharealike.
Additional terms may apply for the media files.