Libusb



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.

Availability
libusb is currently available for Linux, the BSDs, Solaris, OS X, Windows, Android, and Haiku. It is written in C.

Amongst other applications, the library is used by SANE, the Linux scanner project, in preference to the kernel  module, which is restricted to Linux kernel 2.4.