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 production 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?
The reason for the fork is that, despite having dedicated contributors, libusb has barely been able to produce a release in about 3 years. Unfortunately, when a project consistently fails to produce releases, it means that you, its user, are paying the ultimate price as patches and new features, that could be highly beneficial, are being witheld and you end up wasting your time.
The good news however is that, in part due to competition from libusbx and thanks to a recent change of maintainers, the situation described above is improving at long last. As such, we are hoping to merge back with libusb in the near future.
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, you can always revert...
What are the current advantages of libusbx over libusb?
Apart from frequent releases, which include regular bugfixes as well as exciting new features (please check 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, or an ever delayed promise of "better" features that fail to materialize, we strive to bring you the best possible user and developer experience today.
Also, unlike libusb, we fully 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... As such, libusbx is as much your library as it is ours, and we hope that you will engage with us to help make it even greater!