<div dir="ltr"><br><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>I am pleased to announce the release of a new MIT licensed Lua binding to D-Bus.<br><br></div>
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.<br>
<br></div>The binding currently offers these features:<br><br></div>* Single threaded but can be utilized with coroutines<br></div>* Supports multiple "main loop" implementations: currently libev[1] and Glib are supported<br>
</div> - Other foreign main loops (qt, evas_core, etc...) could be added with some work<br></div>* Supports both synchronous and asynchronous (blocking/non-blocking) client/server implementations<br></div>* Built on top of the standard Freedesktop D-Bus reference library<br>
</div>* Integrates nicely with the Lua libev binding[2]<br></div>* Supports *all* D-Bus types (including the container types like structures, dictionaries, arrays, Int64, etc...)<br>* Supports D-Bus Introspection<br></div>
<div> - Dynamically generates proxy bindings based on introspection XML data<br></div>* Provides many high/low level APIs<br></div><div>* Fully documented API courtesy of LDoc[3]<br></div></div>* Developed and tested with Lua 5.1<br>
</div> - Compiles cleanly under Lua 5.2 but I haven't done testing on that platform (yet)<br></div> - Should be compatible with LuaJIT<br></div>* Limited dependencies and small footprint<br> - Does *not* require Glib (no dependencies on GObject)<br>
</div><div>* Already supports cross-compiling (tested on ARM)<br></div><div>* Several test applications that demonstrate various features<br></div><div><br></div>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.<br>
<br></div>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 those who are interested will be generous with
suggestions or help identifying issues (patches are appreciated as well
;-).<br>
<br></div>Finally, I would like to thank my employer (XS-Embedded - <a href="http://www.xse.com" target="_blank">www.xse.com</a>)
for sponsoring this work and allowing me to contribute it completely
unencumbered to the larger D-Bus and Lua communities. I hope it proves to be useful
for some of you. <br>
<br>L2BUS Links:<br><br>Project: <a href="https://github.com/xs-embedded-llc/l2dbus" target="_blank">https://github.com/xs-embedded-llc/l2dbus</a><br>API Docs: <a href="http://xs-embedded-llc.github.io/l2dbus/api/index.html" target="_blank">http://xs-embedded-llc.github.io/l2dbus/api/index.html</a><br>
<br>References:<br><br>[1] <a href="http://software.schmorp.de/pkg/libev.html" target="_blank">http://software.schmorp.de/pkg/libev.html</a><br>[2] <a href="https://github.com/brimworks/lua-ev" target="_blank">https://github.com/brimworks/lua-ev</a><br>
[3] <a href="https://github.com/stevedonovan/LDoc" target="_blank">https://github.com/stevedonovan/LDoc</a><br>[4] <a href="https://github.com/xs-embedded-llc/cdbus" target="_blank">https://github.com/xs-embedded-llc/cdbus</a></div>