usb-0.3: Communicate with USB devicesSource codeContentsIndex
MaintainerBas van Dijk <>

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 packages and provides some strong safety guarantees for working with USB devices.

Besides this API documentation the following sources might be interesting:

module System.USB.Initialization
module System.USB.Enumeration
module System.USB.DeviceHandling
module System.USB.Descriptors
module System.USB.IO.Synchronous
module System.USB.IO.Synchronous.Enumerator
module System.USB.Exceptions
Produced by Haddock version 2.4.2