Language Bindings (or 'Wrappers') allow GTK+ to be used from other
programming languages, in the style of those languages. They are relatively
easy to create because GTK+ is designed with them in mind.
In the following tables, "complete" means that the project is thought to wrap every part of the C API that you are likely to need in that programming language, and that it has a stable API; "almost complete" means that we think it will reach "complete;" status soon; "supported" means that the project targets that version of API, or an earlier API-compatible version; "none" means that the project has no wrapper for that version of the API. These descriptions are mostly self-reported by the project maintainers.
Many of these bindings are also available for GTK+ 1.2, though there are few reasons to be using that now.
GNOME Platform Bindings
These projects follow the GNOME Platform Bindings schedule, which guarantees API stability and time-based releases.
Language |
Project |
GTK+ 2.0 |
GTK+ 2.2 |
GTK+ 2.4 |
GTK+ 2.6 |
GTK+ 2.8 |
GTK+ 2.10 |
C++ |
gtkmm |
complete |
complete |
complete |
complete |
complete |
complete |
Java |
java-gnome |
supported |
supported |
complete |
complete |
complete |
complete |
Perl |
gtk2-perl |
supported |
supported |
complete |
complete |
complete |
complete |
Python |
PyGTK
| complete |
complete |
complete |
complete |
complete |
complete |
Others
Language |
Project |
GTK+ 2.0 |
GTK+ 2.2 |
GTK+ 2.4 |
GTK+ 2.6 |
GTK+ 2.8 |
GTK+ 2.10 |
Ada |
GtkAda |
complete |
complete |
complete |
complete |
complete |
|
C++ |
Xfce Foundation Classes |
none |
complete |
in-progress |
|
|
|
|
VDK |
supported |
supported |
supported |
|
|
|
|
wxWindows/Gtk |
supported |
supported |
supported |
|
|
|
C# |
Gtk# |
supported |
supported |
supported |
supported |
|
|
Common Lisp |
CL-GTK |
almost complete |
|
|
|
D |
DUI |
supported |
supported |
supported |
|
|
|
Eiffel |
eGTK |
supported |
supported |
supported |
|
|
|
|
EiffelVision, GEL |
supported |
supported |
supported |
|
|
|
Erlang |
erlgtk |
supported |
supported |
supported |
|
|
|
Euphoria |
eugtk |
none |
supported |
supported |
|
|
|
Felix |
felix |
none |
supported |
supported |
|
|
|
Fortran |
pilib |
|
|
|
|
|
|
Gauche (Scheme) |
Gauche-gtk |
supported |
supported |
supported |
|
|
|
Guile |
guile-gtk |
supported |
supported |
supported |
|
|
|
Haskell |
Gtk2Hs |
supported |
supported |
supported |
supported |
supported |
|
JavaScript |
JSGtk |
supported |
supported |
supported |
|
|
|
Lua |
lua-gtk |
|
|
supported |
supported |
|
|
Objective-Caml |
lablGTK |
supported |
supported |
supported |
|
|
|
Octave |
Octave GTK+ |
|
supported |
|
|
|
|
Pascal |
GTK+ for Free Pascal |
supported |
supported |
supported |
|
|
|
Pike |
Pike |
supported |
supported |
supported |
|
|
|
PHP |
PHP-GTK |
supported |
supported |
supported |
|
|
|
Ruby |
Ruby-GNOME2 |
supported |
supported |
supported |
|
|
|
Scheme |
Bigloo, gtk+ |
supported |
supported |
supported |
|
|
|
S-Lang |
SLgtk |
supported |
supported |
supported |
supported |
|
|
Smalltalk |
Part of GNU Smalltalk |
supported |
supported |
supported |
|
|
|
TCL |
tcl-gtk |
supported |
supported |
supported |
|
|
|
|
gnocl |
supported |
supported |
supported |
|
|
|
TOM |
TOM/gtk
(more info) |
supported |
supported |
supported |
|
|
|
XBase |
xbgtk |
supported |
supported |
supported |
|
|
|
Send emails to language-bindings@gnome.org
about this page, but please ask language-specific questions on the
appropriate project's mailing list. This web page is in the gtk-web cvs module.
|