libusb is a C library that gives applications easy access to USB devices on many different operating systems. libusb is an open source project, the code is licensed under the GNU Lesser General Public License version 2.1 or later.
There are two versions of the libusb API: the current libusb-1.0 API, and its legacy predecessor libusb-0.1.
Please use libusb-1.0 for all new development. For a detailed comparison of API versions, see the APIs page.
|Download the latest release tarball||Browse the source code||Documentation|
|1.0||libusb-1.0.9 (2012-04-20)||libusb-1.0 gitweb||1.0 API documention|
|1.0||libusb-1.0.16 Release Candidate 10 (2013-05-06)||libusb-1.0 gitweb||1.0.16 API documentation|
|0.1 (legacy)||libusb-compat-0.1.5 (2013-05-20)||libusb-compat-0.1 gitweb||0.1 API documention|
Please read the FAQ (Frequently Asked Questions) page to see if your question has already been answered.
Please ask unanswered questions on the mailing list or in the IRC channel. Remember to search for an answer on your own, before asking others for help. Also remember to include debug information if you have a question about a specific program or problem.
Bugs and feature requests
If you find a bug in libusb, libusb-compat-0.1, or another related program, or if you wish to request an enhancement, please verify that the bug still exists in the newest code, and then please create a new ticket on this web page.
We require that you register an account and verify your email address before you can create a ticket, in an attempt to reduce the amount of spam that gets into the system. We are sorry for this inconvenience, but registering is quick and simple so please don't let it stop you.
Thank you for helping make libusb even better!
Well-known users of libusb include:
- CUPS printing software
- SANE scanning software
- fprint fingerprint reading software
- libgphoto2 camera access software (powering Google Picasa, GIMP, DigiKam, Shotwell and others)
For a more complete list please check the list of software using libusb.
libusb can be used from these programming languages:
|Ada||Libusb 0.1 bindings for Ada|
|C(/C++)||Provided by the libusb library itself|
|C#||libusbdotnet for C#, DotNet and Mono|
|Common Lisp||Common Lisp bindings to libusb-0.1|
|Factor||Factor libusb-1.0 binding|
|Go||Go libusb-1.0 wrapper|
|Haskell||Low level, high level|
|Java||Java libusb(-0.1)/libusb-win32 wrapper|
|Java||Java libusb-1.0 bindings|
|Lua||lua libusb-1.0 binding|
|node.js||node.js libusb-1.0 binding|
|OCaml||OCaml libusb-1.0 binding|
|Perl||Perl bindings for libusb-0.1|
|Python||pyusb for Python|
|Python||partial python wrapper using swig|
|Python||python-libusb1 pure-python wrapper. Supports asynchronous API, all transfer types, all platforms supported by libusb-1.0 + FreeBSD|
|Ruby||Ruby bindings for libusb-0.1|
|Ruby||Ruby bindings for libusb-1.0|
- usbutils includes the very useful lsusb program to view descriptors in devices
License of the Wiki Content
Creative Commons CC BY-SA 3.0