List of language bindings for GTK

From Wikipedia, the free encyclopedia

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. GTK 2 is no longer supported, meaning some languages below do not have current GTK support.

More information Language, Name ...
Language Name Supported? License Notes
2.24 3.12 4.0 GIR Official
Ada GtkAda PartialPartial ?YesNo GPL-3 Supported up to 3.14.[3][4]
C GTK YesYesYesYes LGPL-2.1 Native, no binding needed.
C++ gtkmm YesYesYesNoYes LGPL-2.1
C# and other CLI languages Gtk# PartialNo ?NoYes LGPL-2.1 Support for GTK 2 is available up to 2.12.[5]
GtkSharp NoYes NoNoNo LGPL-2.1 Support for GTK 3 is available up to 3.22.
Gir.Core ?? PartialPartialNo MIT
Crystal crystal-gobject NoYes PartialYesNo BSD
gtk4.cr NoNo YesYesNo MIT
D GtkD YesYes ?YesNo LGPL-3 with exceptions[6] Supported since 2.12
Erlang gtknode PartialNo ?NoNo MIT[7] No, partly supported up to 2.16
Fortran gtk-fortran PartialPartialPartialNoNo GPL-3 Supported since 2.24. Supports GTK 3 and GTK 4.
FreeBASIC FreeBASIC GTK bindings YesPartial ?NoNo LGPL-3 with exception Supported up to 3.4 and since 2.8, integrated into the core distribution.
Gambas Gambas gb.gtk component YesPartial ?NoNo GPL-2 Secondary to the primary Qt components
Genie Genie YesYes YesYesYes LGPL-2.1 language written for GObject system
Go go-gir-generator ?? ?YesNo GPL-3
gotk3 NoPartial ?NoNo ISC[8]
Guile guile-gnome PartialNo ?NoNo GPL-2 supported up to 2.12, partly supported on 2.14
Haskell Gtk2Hs YesPartial ?NoNo LGPL-2.1 Gtk2Hs is a set of Haskell bindings to many of the libraries included in the GTK/GNOME platform.
haskell-gi NoYes YesYesNo LGPL-2.1 Generate Haskell bindings for GObject Introspection capable libraries
J J GTK addon PartialNo ?NoNo GPL-3
Java and other JVM languages java-gnome YesYes NoNoYes GPL-2 with exception Unavailable on Microsoft Windows
Julia Gtk4.jl YesYes YesNoNo MIT Includes Glib support
JavaScript Gjs YesYes YesYesYes MIT GNOME wiki, based on Mozilla's SpiderMonkey
Node-Gtk NoYes PartialYesNo MIT Dynamic Node.js binding to GObject libraries using GObject-Introspection.
Seed YesYes ?YesYes LGPL-2.1 GNOME wiki, based on WebKit's JavaScriptCore
Kotlin/Native gtk-ktNoPartialPartialPartialNo AGPL-3.0 Partial due to being In development, Usable to an extent.
gtk-knNoNoNoPartialNo LGPL-3 Partial due to being In development, Usable to an extent.
Lua LGI PartialYes ?YesNo MIT[9] Dynamic Lua binding to GObject libraries using GObject-Introspection.
lgob NoYes ?YesNo LGPL-3 lgob provides bindings of GObject-based libraries for Lua 5.1.
Nim gintroNoYes YesYesNo MIT High level GObject-Introspection based GTK3/GTK4 bindings for Nim language
OCaml LablGtk PartialPartial ?NoNo LGPL-2.1 with exception No, supported up to 2.16
ooRexx RexxGTK PartialNo ?NoNo CPL Yes, 2.0 or later
Objective-C CoreGTK NoPartial ?NoNo LGPL-2.1
ObGTK PartialNo ?NoNo LGPL-2.1
Objective-C GTK PartialNo ?NoNo LGPL-2.1
Pascal Free Pascal gtk package YesYes ?NoNo 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 YesYes NoYesYes LGPL-2.1
PHP PHP-GTK PartialPartial[11] ?NoNo LGPL-2.1 PHP until 5.2, GTK is GTK2
Prolog PLGI PartialYes ?YesNo LGPL-2.1 Dynamic Prolog binding to GObject libraries using GObject-Introspection.
Python pgi PartialPartial ?YesNo LGPL-2.1 GObject Introspection Bindings for PyPy.
pygir-ctypes PartialPartial ?YesNo BSD Pure Python GObject Introspection Repository (GIR) wrapper using ctypes.
PyGObject YesYes YesYesYes LGPL-2.1 since 2.22[12]
PyGTK YesNo NoNoYes LGPL-2.1 static bindings, use PyGObject
R RGtk2 PartialNo ?NoNo GPL-2 RGtk2.pdf Archived 2016-03-09 at the Wayback Machine
Racket gir ?? ?YesNo MIT[13]
Ruby GirFFI-Gtk PartialPartial ?YesNo LGPL-2.1 GirFFI-based bindings for GTK. Supports both GTK+ 2 and GTK+ 3.
Ruby-GNOME2 Archived 2008-08-21 at the Wayback Machine PartialYes YesNoNo MIT License Partial, supported up to 2.12, partly supported since 2.14[14]
Rust gtk-rs NoYes YesYesNo MIT[15]
gi-rust NoYes ?YesNo LGPL-2.1
Smalltalk GNU Smalltalk GTK+ bindings YesNo ?NoNo GPL-2
Smalltalk YX GTK plugin YesNo ?NoNo MIT
SqueakGtk PartialNo ?NoNo MIT
Standard ML Giraffe Library NoYes ?YesNo LGPL-2.1
Tcl Gnocl YesNo ?NoNo BSD
Vala Vala YesYes YesYesYes LGPL-2.1 language written for GObject system
Wrapl Wrapl GTK+ module PartialNo ?NoNo GPL-3 No, but almost full up to 2.22
Close

Gtk#

Summarize
Perspective
Quick Facts Developer(s), Initial release ...
Gtk#
Developer(s)Xamarin
Initial releaseMarch 12, 2004; 20 years ago (2004-03-12)
Stable release
2.12.41[16] / September 22, 2016; 8 years ago (2016-09-22)
Preview release
2.99.3 (for GTK3)[16] / June 6, 2014; 10 years ago (2014-06-06)
Repositoryhttps://github.com/mono/gtk-sharp
Written inC#, XML, Perl, C
Operating systemWindows, macOS, Linux
TypeWidget toolkit
LicenseGNU Lesser General Public License
Websitemono-project.com/GtkSharp
Close

Gtk# is a set of .NET Framework bindings for the GTK graphical user interface (GUI) toolkit and assorted GNOME libraries. The library facilitates building graphical GNOME applications using Mono or any other compliant Common Language Runtime (CLR). Gtk# is an event-driven system like any other modern windowing library where every widget allows associating handler methods, which get called when certain events occur.[citation needed]

Applications built using Gtk# will run on many platforms including Linux, Windows and macOS. The Mono packages for Windows include GTK, Gtk# and a native theme to make applications look like native Windows applications. Starting with Mono 1.9, running Gtk# applications on macOS no longer requires running an X11 server.[17]

Glade Interface Designer can be used with the Glade# bindings to easily design GUI applications. A GUI designer named Stetic is integrated with the MonoDevelop integrated development environment (IDE).

In addition to support the standard GTK/GNOME stack of development tools, the gtk-dotnet.dll assembly provides a bridge to consume functionality available on the .NET stack. At this point this includes the functionality to use System.Drawing to draw on a widget.[citation needed]

As of September 2020, Gtk# support for Gtk3 remains in the preview phase and forked projects, such as GtkSharp, have been founded to provide full Gtk3 support for C# and other CLI languages. The lack of a released version of Gtk# with support for Gtk3 was cited as a reason to remove the Banshee media player in Ubuntu 12.04.[18]

See also

References

Wikiwand - on

Seamless Wikipedia browsing. On steroids.