The usb package

[Tags:bsd3, library]

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:

Besides this API documentation the following sources might be interesting:


Versions 0.1,, 0.2,, 0.3,, 0.3.1, 0.4, 0.5,, 0.6,,,,,,,,, 0.7, 0.8, 1.0, 1.1,,,,, 1.2,,,,,,,
Dependencies base (>=4 && <4.3), base-unicode-symbols (>=0.1.1 && <0.3), bindings-libusb (>=1.3 && <1.5), bytestring (==0.9.*), text (>=0.5 && <0.9) [details]
License BSD3
Copyright 2009–2010 Bas van Dijk <>
Author Bas van Dijk <>
Maintainer Bas van Dijk <>
Category System
Source repository head: darcs get
Uploaded Mon Sep 13 05:48:41 UTC 2010 by BasVanDijk
Distributions NixOS:
Downloads 7493 total (327 in the last 30 days)
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees