# usb: Communicate with USB devices

[ bsd3, hardware, library, system ] [ Propose Tags ]

This library allows you to communicate with USB devices from userspace. It is implemented as a high-level wrapper around bindings-libusb which is a low-level binding to the C library: libusb-1.*.

This documentation assumes knowledge of how to operate USB devices from a software standpoint (descriptors, configurations, interfaces, endpoints, control/bulk/interrupt/isochronous transfers, etc). Full information can be found in the USB 2.0 Specification.

For an example how to use this library see the ls-usb package at:

Also see the usb-safe package which wraps this package and provides some strong safety guarantees for working with USB devices:

Finally have a look at the usb-enumerator package which provides iteratee enumerators for enumerating bulk and interrupt endpoints: