wiki:WikiStart

Version 30 (modified by xiaofan, 2 years ago) (diff)

Mention libusbk as the next-gen libusb-win32

libusb

About

This is the home of libusb, a library that gives user level applications uniform access to USB devices across many different operating systems. libusb is an open source project licensed under the GNU Lesser General Public License version 2.1.

Many participants in the libusb community have helped and continue to help with ideas, implementation, support and improvements for libusb.

Version overview

There are currently two separate core projects, with non-compatible APIs:

In addition to the core projects there are one sub-project and one separate project that provide Windows back-ends:

Stable API: libusb-1.0

Daniel Drake adopted the project in January 2008 and worked on a libusb-1.0 release, which adds several features that were missing from the 0.1 API. As of December 2008, libusb-1.0 is the stable and recommended version to use. Developers are encouraged to port their applications to the new API.

  • See the libusb-1.0 page for more information.
  • Download libusb-1.0 releases here
  • API documentation
  • Compatibility with the libusb-0.1 API is available through the libusb-compat-0.1 compatibility layer.
  • Linux and Darwin (Mac OS X see below) are supported in the latest release. Windows support is present in git as of August 2010.
  • The Windows backend currently uses Microsoft WinUSB.sys. Support for the libusb0.sys and libusbk.sys backend (libusb0.sys is the libusb-win32 kernel driver, libusbk.sys is the next-generation libusb-win32 kernel driver) will be integrated later (#49) as well. For generic HID device, HIDAPI is recommended.
  • Darwin (Mac OS X) implementation has one limitation. If the OS has an interface driver that matches the characteristics of a device, it will seize the interface and the kernel driver cannot easily be detached. So libusb will not be able to use that interface. This is a particular problem with generic HID devices. For HID device, HIDAPI is recommended.

Legacy API: libusb-0.1

Johannes Erdfelt founded the libusb project and lead development through 2007. By then, libusb-0.1 had been developed, stabilized, and adopted by a wide range of projects.

Support

Please ask support questions on the mailing list or in the IRC channel.

You should also read the FAQ or Frequently Asked Questions.

Bugs and feature requests

If you find a bug in libusb, libwdi, zadig or another related program, or if you wish to request an enhancement, 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.

Make sure to view the list of active tickets before creating a new ticket, so that duplicates can be avoided.

Thank you for helping make libusb even better!

  • usbutils includes the very useful lsusb program to view descriptors in devices