I am pleased to announce the release of a new MIT licensed Lua binding to Linux's D-Bus IPC library.
The development of this binding was inspired by others and has been under development for quite some time. Hopefully those of you who utilize Lua on Linux platforms (particularly embedded) will appreciate having complete unfettered access to D-Bus for your development needs.
The binding currently offers these features:
* Single threaded but can be utilized with coroutines
* Supports multiple "main loop" implementations: currently libev[1] and Glib are supported
- Other foreign main loops (qt, evas_core, etc...) could be added with some work
* Supports both synchronous and asynchronous (blocking/non-blocking) client/server implementations
* Built on top of the battle-tested Freedesktop D-Bus reference library
* Integrates nicely with the Lua libev binding[2]
* Supports *all* D-Bus types (including the container types like structures, dictionaries, arrays, Int64, etc...)
* Supports D-Bus Introspection
- Dynamically generates proxy bindings based on introspection XML data
* Provides many high/low level APIs
* Fully documented API courtesy of LDoc[3] (thank you Steve D.)
* Developed and tested with Lua 5.1
- Compiles cleanly under Lua 5.2 but I haven't done testing on that platform (yet)
- Should be compatible with LuaJIT
* Limited dependencies and small footprint
- Does *not* require Glib (no dependencies on GObject)
* Already supports cross-compiling (tested on ARM)
* Several test applications that demonstrate various features
The L2DBUS module consists of both Lua code and a 'C' module that utilizes a secondary 'C' library (CDBUS[4]) that partially wraps the D-Bus reference library. For those of you involved with embedded work, the CDBUS project provides a minimal, primitive wrapper around D-Bus that might prove useful for some applications. Unfortunately, it's not heavily documented at this time.
This is the 1.0.0 release so there may be some rough spots and bugs that are still undetected. Time permitting, I plan on continuing to develop this binding and hope the Lua community will be generous with suggestions or help identifying issues (patches are appreciated as well ;-).