libusb is a library that provides applications with access for controlling data transfer to and from USB devices on Unix and non-Unix systems, without the need for kernel-mode drivers.
libusb is currently available for Linux, the BSDs, Solaris, OS X, Windows, Android, and Haiku.[2] It is written in C.
Amongst other applications, the library is used by SANE, the Linux scanner project, in preference to the kernel scanner
module, which is restricted to Linux kernel 2.4.