[ANN] L2DBUS - Lua-2-DBus Binding for D-Bus

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] L2DBUS - Lua-2-DBus Binding for D-Bus

Glenn Schmottlach
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 ;-).

Finally, I would like to thank my employer (XS-Embedded - www.xse.com) for sponsoring this work and allowing me to contribute it completely unencumbered to the larger Lua community. I hope it proves to be useful for some of you.
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] L2DBUS - Lua-2-DBus Binding for D-Bus

Tiago Katcipis
From your description i can see everything i wanted on Lua regarding DBus since ever and never got the time to do it. I work on heavily DBus/GDBus/Glib based projects and now it seems that Lua is an option again when writing new DBus services (right now I'm playing a little with Vala).

Thanks a lot for sharing this.

Best regards,
Tiago Katcipis


On Fri, Jun 14, 2013 at 4:59 PM, Glenn Schmottlach <[hidden email]> wrote:
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 ;-).

Finally, I would like to thank my employer (XS-Embedded - www.xse.com) for sponsoring this work and allowing me to contribute it completely unencumbered to the larger Lua community. I hope it proves to be useful for some of you.

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] L2DBUS - Lua-2-DBus Binding for D-Bus

Glenn Schmottlach
I certainly hope the L2DBUS binding fits your use-case and would appreciate any feedback you can provide. We intend to use it heavily for much of our middle-ware development on embedded Linux platforms. I love Lua but was always a bit disappointed (and surprised) that there wasn't a more complete D-Bus binding for the language like what is available for Python and others. I hope this package will continue to evolve to fill that niche for Lua. I can certainly understand why you might investigate using Vala because using the GObject framework directly from 'C' can become tedious.

Glenn


On Sat, Jun 15, 2013 at 3:35 PM, Tiago Katcipis <[hidden email]> wrote:
From your description i can see everything i wanted on Lua regarding DBus since ever and never got the time to do it. I work on heavily DBus/GDBus/Glib based projects and now it seems that Lua is an option again when writing new DBus services (right now I'm playing a little with Vala).

Thanks a lot for sharing this.

Best regards,
Tiago Katcipis


On Fri, Jun 14, 2013 at 4:59 PM, Glenn Schmottlach <[hidden email]> wrote:
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 ;-).

Finally, I would like to thank my employer (XS-Embedded - www.xse.com) for sponsoring this work and allowing me to contribute it completely unencumbered to the larger Lua community. I hope it proves to be useful for some of you.


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] L2DBUS - Lua-2-DBus Binding for D-Bus

D Burgess-4
Good work!

On Mon, Jun 17, 2013 at 12:42 AM, Glenn Schmottlach
<[hidden email]> wrote:

> I certainly hope the L2DBUS binding fits your use-case and would appreciate
> any feedback you can provide. We intend to use it heavily for much of our
> middle-ware development on embedded Linux platforms. I love Lua but was
> always a bit disappointed (and surprised) that there wasn't a more complete
> D-Bus binding for the language like what is available for Python and others.
> I hope this package will continue to evolve to fill that niche for Lua. I
> can certainly understand why you might investigate using Vala because using
> the GObject framework directly from 'C' can become tedious.
>
> Glenn
>
>
> On Sat, Jun 15, 2013 at 3:35 PM, Tiago Katcipis <[hidden email]>
> wrote:
>>
>> From your description i can see everything i wanted on Lua regarding DBus
>> since ever and never got the time to do it. I work on heavily
>> DBus/GDBus/Glib based projects and now it seems that Lua is an option again
>> when writing new DBus services (right now I'm playing a little with Vala).
>>
>> Thanks a lot for sharing this.
>>
>> Best regards,
>> Tiago Katcipis
>>
>>
>> On Fri, Jun 14, 2013 at 4:59 PM, Glenn Schmottlach
>> <[hidden email]> wrote:
>>>
>>> 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 ;-).
>>>
>>> Finally, I would like to thank my employer (XS-Embedded - www.xse.com)
>>> for sponsoring this work and allowing me to contribute it completely
>>> unencumbered to the larger Lua community. I hope it proves to be useful for
>>> some of you.
>>>
>>> L2BUS Links:
>>>
>>> Project:      https://github.com/xs-embedded-llc/l2dbus
>>> API Docs:  http://xs-embedded-llc.github.io/l2dbus/api/index.html
>>>
>>> References:
>>>
>>> [1] http://software.schmorp.de/pkg/libev.html
>>> [2] https://github.com/brimworks/lua-ev
>>> [3] https://github.com/stevedonovan/LDoc
>>> [4] https://github.com/xs-embedded-llc/cdbus
>>>
>>
>



--
David Burgess

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] L2DBUS - Lua-2-DBus Binding for D-Bus

Glenn Schmottlach
Hi David -

If you do have a chance to use L2DBUS, let me know if you have any feedback. I can't say I can immediately make feature-changes but if you encounter any bugs I'd definitely try to address those quickly.

Thanks,

Glenn
 


On Mon, Jun 17, 2013 at 8:20 AM, David Burgess <[hidden email]> wrote:
Good work!

On Mon, Jun 17, 2013 at 12:42 AM, Glenn Schmottlach
<[hidden email]> wrote:
> I certainly hope the L2DBUS binding fits your use-case and would appreciate
> any feedback you can provide. We intend to use it heavily for much of our
> middle-ware development on embedded Linux platforms. I love Lua but was
> always a bit disappointed (and surprised) that there wasn't a more complete
> D-Bus binding for the language like what is available for Python and others.
> I hope this package will continue to evolve to fill that niche for Lua. I
> can certainly understand why you might investigate using Vala because using
> the GObject framework directly from 'C' can become tedious.
>
> Glenn
>
>
> On Sat, Jun 15, 2013 at 3:35 PM, Tiago Katcipis <[hidden email]>
> wrote:
>>
>> From your description i can see everything i wanted on Lua regarding DBus
>> since ever and never got the time to do it. I work on heavily
>> DBus/GDBus/Glib based projects and now it seems that Lua is an option again
>> when writing new DBus services (right now I'm playing a little with Vala).
>>
>> Thanks a lot for sharing this.
>>
>> Best regards,
>> Tiago Katcipis
>>
>>
>> On Fri, Jun 14, 2013 at 4:59 PM, Glenn Schmottlach
>> <[hidden email]> wrote:
>>>
>>> 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 ;-).
>>>
>>> Finally, I would like to thank my employer (XS-Embedded - www.xse.com)
>>> for sponsoring this work and allowing me to contribute it completely
>>> unencumbered to the larger Lua community. I hope it proves to be useful for
>>> some of you.
>>>
>>> L2BUS Links:
>>>
>>> Project:      https://github.com/xs-embedded-llc/l2dbus
>>> API Docs:  http://xs-embedded-llc.github.io/l2dbus/api/index.html
>>>
>>> References:
>>>
>>> [1] http://software.schmorp.de/pkg/libev.html
>>> [2] https://github.com/brimworks/lua-ev
>>> [3] https://github.com/stevedonovan/LDoc
>>> [4] https://github.com/xs-embedded-llc/cdbus
>>>
>>
>



--
David Burgess


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] L2DBUS - Lua-2-DBus Binding for D-Bus

Tiago Katcipis
In reply to this post by Glenn Schmottlach



On Sun, Jun 16, 2013 at 11:42 AM, Glenn Schmottlach <[hidden email]> wrote:
I certainly hope the L2DBUS binding fits your use-case and would appreciate any feedback you can provide. We intend to use it heavily for much of our middle-ware development on embedded Linux platforms. I love Lua but was always a bit disappointed (and surprised) that there wasn't a more complete D-Bus binding for the language like what is available for Python and others.

Same here :-). I don't know when i will be able to give it a try, right now all processes are written on C or Vala (the experimental one). But i can assure you that if i use it i will give all feedback possible, and even some fixes :-) (it is quite annoying to have people only complaining isn't it? :-)
 
I hope this package will continue to evolve to fill that niche for Lua. I can certainly understand why you might investigate using Vala because using the GObject framework directly from 'C' can become tedious.

It is extremely tedious...even with GDBus code generator, asynchronous DBus handling is C is painful :-(.

 

Glenn


On Sat, Jun 15, 2013 at 3:35 PM, Tiago Katcipis <[hidden email]> wrote:
From your description i can see everything i wanted on Lua regarding DBus since ever and never got the time to do it. I work on heavily DBus/GDBus/Glib based projects and now it seems that Lua is an option again when writing new DBus services (right now I'm playing a little with Vala).

Thanks a lot for sharing this.

Best regards,
Tiago Katcipis


On Fri, Jun 14, 2013 at 4:59 PM, Glenn Schmottlach <[hidden email]> wrote:
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 ;-).

Finally, I would like to thank my employer (XS-Embedded - www.xse.com) for sponsoring this work and allowing me to contribute it completely unencumbered to the larger Lua community. I hope it proves to be useful for some of you.