A C libraries called libusb offers universal Usb device connection. Developers are supposed to use it to make creating functions that connect to Usb equipment easier.
It has a user-mode: No special privilege or elevation is required for the application to communicate with a device.
It is portable: Using a single cross-platform API, it provides access to USB devices on Windows, OS X, Linux, Android and OpenBSD.
Advertisement
It is version-agnostic: All versions of the USB protocol, from 1.0 to 3.0, are supported.
https://www.libusb.info