[ANN] R-Bus, a native Ruby implementation of D-Bus

Hello,

just put the source code up at the project page at Rubyforge. Finally
found the time to clean it up a bit and polish the docs a little.

R-Bus is a native Ruby implementation of the D-Bus protocol, with
these goals in mind:

  • Ruby + standard library is the only dependencies
  • A Rubyish API, approach and way of doing things
  • Complete client functionality
  • A comprehensive test suite

Homepage: http://rbus.rubyforge.org/
Subversion: svn checkout svn://rubyforge.org/var/svn/rbus/trunk rbus
API, tutorial, etc: http://rbus.rubyforge.org/doc/

The license is GPL.

No gems or tarballs yet, as I want some eyes on both API and code
first, it’d be much appreciated!

Current status is that it covers pretty much all client functionality
apart from exporting objects, which should be one of the things next
on the list.

It has support for a threaded event loop as well as using the GLib one
with the Ruby-GNOME2 bindings. There was some concern earlier over
threads, but it works really well so far, and the native Java
implementation seems to have a similar approach. It should also be
possible to add more loop types without too much problem, I hope.

There are some more things that are missing here and there, but what
is needed most of all is lots, no LOTS of testing. There’s sure to
be plenty of things that do not work as they should, especially in
complex marshaling combinations. Also it’s all just tested on one
Linux machine so far, so “worked on my machine”-syndrome is probably
more fact than possibility. :wink:

Both more automated tests as well as example scripts and applications
would be more than welcome - also useful scripts in other languages
than Ruby would be cool, so they could be translated for testing
purposes. See the examples directory for some currently working stuff.

There’s plenty more to tell, I’m sure, but for the ones interested,
there’s plenty of docs and code to check out, and of course, feel free
to ask any questions you may have. Everyone’s invited. :wink:

Sorry it took so long, for those who may have waited.

Have fun!

– Stoffe


Kristoffer Lundén
✉ [email protected]
✉ [email protected]
http://www.gamemaker.nu/
☎ 0704 48 98 77

Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net’s Techsay panel and you’ll get the chance to share
your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

On Mon, 2007-03-26 at 05:56 +0200, Kristoffer Lundén wrote:

  • Complete client functionality

There are some more things that are missing here and there, but what

There’s plenty more to tell, I’m sure, but for the ones interested,
there’s plenty of docs and code to check out, and of course, feel free
to ask any questions you may have. Everyone’s invited. :wink:

Sorry it took so long, for those who may have waited.

Have fun!

Hey, very cool. I had a quick look at the tutorial. About the only
thing I can comment on is this section:

As an extra convenience, if the name and the path has the same
components, the latter can be omitted and will be auto-generated.

get ‘/org/freedesktop/Notifications’ object from Notifications

notify = bus.get_object(‘org.freedesktop.Notifications’)

Similarities between the object path and bus name are purely
coincidental. Actually encoding this relationship is in my opinion not
ideal.


John (J5) Palmieri [email protected]


Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net’s Techsay panel and you’ll get the chance to share
your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

Hello,

On 3/27/07, John (J5) Palmieri [email protected] wrote:

Hey, very cool.

Thanks!

Similarities between the object path and bus name are purely
coincidental. Actually encoding this relationship is in my opinion not
ideal.

Fair enough. It seemed like a common enough practice for applications
that only exports one object, that it would be useful with a shortcut.
No biggie though, I can remove that. :slight_smile:

Thanks for the input,

– Stoffe