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 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.
What platforms are currently supported?
Linux, OS X, Windows, Windows CE, Android, OpenBSD/NetBSD.
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.
What happened to the old site?
The old site is now obsolete. Please use libusb.info. All of the libusb development has moved here.