lua-users home
lua-l archive

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

In case someone might be interested in using it, I have separated my
Lua wrapper generator for C, libextl, from Ion. It is now available
(under the LGPL) in the Ion Subversion repository at

It still depends on libtu available from the same repository

for a C object system and some additional routines. However, I have 
taken steps to make it relatively easy to use another object system
by redefining some macros.

What then sets this wrapper generator apart from the dozens of
others? Most importantly, it is very painless to use. No separate
interface definition files and other management nightmares. Just a
keyword before an exported function. From the README:

> Libextl supports exporting functions that operate on basic data types
> (int, bool, double, [const] char*) and references to Lua tables and
> functions (ExtlTab, ExtlFn) simply by prefixing the function definition
> with the keywords EXTL_EXPORT or EXTL_EXPORT_AS. More complex data must,
> however, either be proxied libtu objects (or objects of some other object
> system with the appropriate macros redefined), or Lua tables. The binding
> glue is, however, generated as painlessly as for functions that operate
> on basic data types with all pointers to a type with a name that begins
> with an uppercase letter are considered such objects. Libextl also
> provides functions to manipulate Lua tables through references to these,
> and ways to call and load Lua code.

The full README can be viewed at

There's the beginnings of a documentation that should get people
started in the README. More comprehensive documentation may be
written if anyone shows interest in the library.