libusb is a C library that provides generic access to USB devices. It is intended 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, Android, OpenBSD, etc.
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.1 (latest), are supported.
What platforms are supported?
Linux, OS X, Windows, Windows CE, Android, OpenBSD/NetBSD, Haiku.
Sounds good! How do I get started?
If you are using Linux, chances are your distribution already includes libusb, so you probably just need to reference the libusb header in your source.
For other platforms, or if you want to use the very latest, you are encouraged to recompile from source. Please check the Downloads menu.
If you prefer, you can also access the source directly from github.