What is LuaGnome?

LuaGnome provides a fairly complete binding to Gnome Libraries Lua, including glib 2.x, gdk, gtk 2.x, and a list of supporting libraries.

With it, you can write small or large applications only in Lua, while using Gtk through an API that almost matches the C API. Currently about 7600 functions and 700 structures, unions, as well as about 5800 constants (enums, #defines) are available. Still, the library is just about 350 kB when compiled (plus a few small, optional Lua files).

For interface design, I recommend glade-3. The XML files generated by it can be used by the glade.lua module or (since Gtk 2.12.0) be read by the GtkBuilder class after a conversion by the gtk-builder-convert script.

A supporting Lua library makes it easy to do asynchronous network communication, i.e. in the background, without blocking the GUI. Currently, HTTP and FTP protocols are implemented. Some sample applications are provided.


The primary platform is Linux. It can be cross-compiled for Windows using MinGW. Scripts can (with some care) run on these platforms without changes. A Debian package is available, currently in testing: package page.

The library is available under the same terms and conditions as the Lua language, the MIT license, and the LGPL (Lesser GNU Public License). The idea is that if you can use Lua (and Gtk) in a project, you should also be able to use LuaGnome.


The project page is on luaforge.net. Please use the Forums on luaforge.net for discussion and help requests, and the Tracker to submit bugs.

Copyright © 2005, 2009 Wolfgang Oertl.


Please use the download section of the project on luaforge.net. Note that the most current version is only in the CVS repository, which you can browse online or download as snapshot.