libusbx eXpand your USB potential


libusbx is a library that provides generic access to USB devices. As a library, it is meant to be used by developers, to facilitate the development of applications that communicate with USB hardware.

It is portable: Using a single cross-platform API, it provides access to USB devices on Linux, OS X, Windows and OpenBSD.

It is user-mode: No special privilege or elevation is required for the application to communicate with a device.

It is version-agnostic: All versions of the USB protocol, from 1.0 to 3.0 (latest), are supported.

Is libusbx a fork of libusb?

Yes it is.

The reason for the fork is that, despite having dedicated members, libusb has still not been able to produce a new release for the past 2 years. When a project fails to produce regular releases, we consider that you, its user, are paying the ultimate price. This is because it means that patches and new feature are being witheld and you end up wasting your time.

We are the same dedicated team who tirelessy tried to improve libusb but saw our efforts being wasted there. After using libusbx for a while and after dealing with our great community, we hope that you will be as convinced as we are that there exists a better way!

Do I need to do anything special to use libusbx?

If you are an existing user of libusb, you don't have to change anything. Just download the libusbx library and use it in your code. The library is designed as a drop in replacement for libusb, so please give it a try. If you don't like it, which we very much doubt, you can always revert...

If you are a new user of libusbx, please have a look at our API documentation or check out our samples and get rolling! And as always, we will be here to help you out.

What are the advantages of libusbx over libusb?

Apart from frequent releases that include regular bugfixes as well as exciting new features (please have a look at our roadmap), you should find that we are a lot more responsive and that, rather than focus our efforts on elements that are of little interest to you as well as the ever delayed promise of "better" things that fail to materialize, our focus is very much about bringing you the best possible user experience today.

Unlike libusb, we also subscribe to the Release Early, Release Often (RERO) philosophy, upon which the success of the Linux kernel and countless other Open Source projects is based.

Finally, if there's anything the failure of libusb has taught us, it's that a project should never fail to listen to you, its user!

For any additional information, please consult the FAQ or the Wiki.