LablGtk is an OCaml interface to GTK+. It comes in two flavors: LablGtk1 for GTK+-1.2 and LablGtk2 for GTK+-2.0 to GTK+-2.16.

It uses the rich type system of OCaml 3 to provide a strongly typed, yet very comfortable, object-oriented interface to GTK+ while being compatible with its dynamic typing approach.

Most widgets and methods are available. In addition to GTK+, LablGtk provides bindings to libglade, gdk-pixbuf, gnomecanvas, librsvg, libpanel, the GLArea widget (in combination with LablGL) and OCaml code generation from .glade files. Many examples are available.

The toplevel can be used for interactive development. Windows is supported too (see the README for build instructions).

The project is developed on the OCaml Forge.

Documentation and tutorials

LablGtk2 Tutorial by SooHyoung Oh
A nice LablGtk translation of the Gtk+ Tutorial. See also the Tree View Tutorial (in progress).


Latest release of LablGtk2. It fixes a number of bugs, including an incompatibility between OCaml 3.12 and previous versions. See the changes for the details.
Windows binaries for the OCaml 3.11 distribution only (msvc or mingw) for both bytecode and native code. The required GTK+ dlls are available from the Gnome distribution. This is enough for bytecode but native code linking requires a development environment (installation instructions). There are no extra dependencies since this release has been built with mingw.
Download area
All available releases.
Git access
The development sources of LablGtk are available on the OCaml forge. The master branch is for LablGtk2 (a branch named 'lablgtk1' is also available).

Mailing list

The OCaml forge web interface gives access to subscription and archives.

Additional libraries

LablGtk-extras by Maxence Guesdon
Additional tools and libraries to develop LablGtk2 applications.
A library to handle various image formats in Caml. Includes support for LablGtk.
List of applications using LablGtk

LablGtk for GTK+-1

Jacques Garrigue, 2011.2.21.