LGI is gobject-introspection based dynamic Lua binding to GObject based libraries. It allows using GObject-based libraries directly from Lua.
Licensed under MIT-style license, see LICENSE file for full text.
Home of the project is on GitHub.
In order to be able to compile native part of lgi,
gobject-introspection >= 0.10.8 development package must be installed,
although preferred version is >= 1.30. The development package is
called libgirepository1.0-dev on debian-based systems (like Ubuntu)
and gobject-introspection-devel on RedHat-based systems (like Fedora).
Using LuaRocks:
luarocks install lgi
Alternatively, use make-based installation:
make
[sudo] make install [PREFIX=<prefix>] [DESTDIR=<destdir>]
See examples in samples/ directory. Documentation is available in doc/ directory in markdown format. Process it with your favorite markdown processor if you want to read it in HTML.
- Project hosting moved to GitHub.
- Build system swicthed from
wafto simple Makefile-based one - Added automatic locking of thread-sensitive libraries (Gdk and
Clutter). There is no need to add
Gdk.threads_enter(),Gdk.threads_leave()andClutter.threads_enter(),Clutter.threads_leave()pairs into application, lgi handles this automatically. - Added new sample
samples/console.lua, which implements already quite usable Lua console using Gtk widgets. - Fixes for compatibility with older gobject-introspection 0.10.8 package
- Testsuite is not built automatically, because building it can be apparently problematic on some systems, causing installation failure even when testsuite is not needed at all.
- Remove
setlocale()initialization, which could break Lua when used with some regional locales. The downside of this change is that marshalling filenames containing non-ASCII characters on systems which defineG_BROKEN_FILENAMESenvironment variable (probably only Fedora 15) does not work now.
First public release