GTK+
The GIMP Toolkit

General
Introduction
Screenshots
Download
Mailing Lists
Language Bindings
Themes
Bug Tracker
Plans
Success Stories
The GTK+ Team
GTK+ Wiki

Documentation
FAQ
GTK+-2.0 Tutorial
GTK+-1.2 Tutorial
API Reference
Papers / Slides

Other documentation...

Projects
Pango
GNOME
GTK+ for Win32
GTK+ on Mac OS X
GTK+ on DirectFB

More Projects...

Applications
GIMP
Abiword
Dia
Glade
GnuCash
Gnumeric

GNOME Software Map

    Language Bindings    

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.