libusb  A cross-platform user library to access USB devices

Overview

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, macOS, Windows, 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, macOS, Windows (Vista and newer), Android, OpenBSD/NetBSD, Haiku, Solaris.

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.

Once you have secured your access to the library and its header, please check the libusb API or the libusb samples.

What happened to the old site?

The old site (.org) is now obsolete, please use libusb.info.
All of the current libusb development team has moved to libusb.info.


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