RibUSB

Ruby bindings to the libusb library

Introduction

RibUSB is a Ruby extension that gives a Ruby programmer access to all functionality of libusb, version 1.0.

  • libusb is a library that gives full access to devices connected via the USB bus. No kernel driver is thus necessary for accessing USB devices. Linux support is ready, ports to other systems are bound to appear with time.
  • This Ruby extension supports the API version 1.0 of libusb. Note that the old "legacy" version 0.1.x of libusb uses a completely different API and is thus not supported.
  • The API is currently work-in-progress. Do not rely on it being stable just yet.

This project is being developed by AndrĂ¡s G. Major and is hosted on RubyForge. The RubyForge project page is located here.

RibUSB is covered by the GNU Public License version 2.

Status

The project was started in March 2009, not too long after the new version (1.0) of libusb was declared stable (December 2008). The project is considered pre-alpha not because of code quality but simply because it is incomplete and the API has not settled yet.

As of 25 March 2009, some of the code is being reorganized. In particular, a significant part of the API will change. Don't worry, it'll settle before the first release.

As of 9 April 2009, at least part of the API (control transfers) are considered to be close to settled. Not everything works just yet, though.

As of 17 June 2009, asynchronous control transfers work. We can focus on bulk and interrupt now and on isochronous later.

As of 20 June 2009, I started working on the tutorial. Many functions not mentioned yet have already been implemented, but not tested thoroughly enough for the tutorial.

As of 23 June 2009, version 0.0.1 is out as a Ruby gem, for all the adventurous who don't want to checkout from SVN.

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.