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.
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.