[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: [ANN] lgi 0.2 - Lua to GObject (GNOME) libraries binding
- From: Pavel Holejsovsky <pavel.holejsovsky@...>
- Date: Thu, 24 Nov 2011 12:27:50 +0100
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.
- 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
- 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
Preferably by luarocks, "luarocks install lgi".
Full source is available on gitorious:
- 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: