lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Hello lua-l readers,

I'm happy to announce that after more than year of development, lgi project finally made it to the first public alpha release.

Lgi is binding of GObject-based libraries to Lua using dynamic form of GObject Introspection. This means that you can use GI-enabled GObject library from Lua without the need to compile any C code, just having appropriate .typelib installed for target library is enough.

* License:

* Features:
- Allows querying and instantiating GObject-based classes, invoke methods, functions, read and write properties and connect signals - Fully dynamic binding, no additional C code is needed to compile to access any GI-enabled library - Has syntactic sugar for easy work with GObject primitives - mainly GType, GValue and GClosure
- Contains wrappers for Lua-friendly work with GVariant

* Requirements:
- Installed and working gobject-introspection library >= 0.10.8 (distributed with GNOME3.0, e.g. Fedora15), but some features are available only with gobject-introspection >= 1.30 (available with GNOME3.2, e.g. Fedora16). - Target library must be compiled with GI support, i.e. has installed .typelib file (all Linux distributions I know fulfill this). - Tested only with Lua 5.1.4, should work with current LuaJIT (but does not use ljffi yet). Most probably does not work yet with Lua 5.2

* Known problems:
- 0.2 release triggers bug in gobject-introspection 0.10.8 causing crashes when running on 32b architectures. x86_64 works fine, and fix for gi-0.10.8 on x86 is already in lgi git master.
- GVariant support works only when using gobject-introspection>=1.30

* Availability:
Preferably by luarocks, "luarocks install lgi".
Full source is available on gitorious:

* Documentation:
- There is documentation in markdown format, written in my terribly broken english. Use your favorite markdown processor to turn it into something more fancy :-)

* Simple sample GTK applications using lgi: