Home
Clone this wiki locally
Welcome to the HIDAPI wiki!
For cross platform communication with HID devices, libusb project recommends HIDAPI.
HIDAPI versioning
HIDAPI follows (at least tries to) the Semantic Versioning scheme. Even though we're still at version 0.x.y - we're doing our best to keep backward compatibility across releases.
Various related projects and repositories
libusb -- https://github.com/libusb/libusb/wiki
Python binding for HIDAPI cython-hidapi -- https://github.com/trezor/cython-hidapi
nodejs binding -- https://github.com/node-hid/node-hid.git
Rust binding -- https://github.com/ruabmbua/hidapi-rs
Java binding -- https://github.com/gary-rowe/hid4java
QT wrapper for HIDAPI -- https://github.com/simonmeaden/qhidapi
Ruby binding -- https://rubygems.org/gems/hidapi/
C++ wrapper -- https://github.com/sensics/HIDAPIpp
.NET binding -- https://github.com/badcel/HidApi.Net.git and https://github.com/alexgubanow/hidapiw
WIP Kotlin Native binding -- https://git.sr.ht/~z3ntu/kotlin-native-hidapi
hidapitester command line tool based on HIDAPI -- https://github.com/todbot/hidapitester
hidpytoy: GUI tool based on HIDAPI -- https://github.com/todbot/hidpytoy
Free Pascal bindings for HIDAPI -- https://github.com/dioannidis/HIDAPI.pas
FAQ
hidapi is not thread-safe in general. How to use hidapi in multithreaded application?
How to use hidapi with unrooted Android devices
Links to platform specific HID information
Windows HID Transport
https://learn.microsoft.com/en-us/windows-hardware/drivers/hid/hid-transports
Linux HID transport and hidraw
https://github.com/torvalds/linux/blob/master/Documentation/hid/hid-transport.rst
https://github.com/torvalds/linux/blob/master/Documentation/hid/hidraw.rst