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.
Rationale.
Because the Linux kernel is a monolithic type of kernel, device drivers are part of it.
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 codice_1 module, which is restricted to Linux kernel 2.4.