Yet another Go package tailored for interacting with USB Human Interface Devices (HID).
This package facilitates cross-platform communications with HID devices on macOS, Linux, and Windows. Behind the scenes, it employs boombuler/hid as its foundation and broadens its functionalities by reading feature reports from USB HID devices, and its Linux implementation is a derivative of dolmen-go/hid, which wraps hidapi
.
Divergent from comprehensive USB HID packages, gid
chiefly focuses on offering support limited to HID devices with feature reports across major platforms. Our primary spotlight is the ThingM blink(1) devices.
gid
is designed to work seamlessly with the following systems:
- macOS: Through its native IOKit framework
- Linux: Leverages libusb 1.0+
- Windows: Utilizes native Windows HID library
We've tested the package on different platforms to ensure its compatibility:
- macOS Venture 13.5.2 (on Apple M1 Chip)
- Windows 10 x64 - Build 19045
- Windows 11 x64 - Build 22621
- Raspberry Pi OS 64-bit Bullseye (on Raspberry Pi 3 Model B)
The package has been verified to work with the following devices:
- ThingM blink(1) mk2
This package is designed to support minimum USB HID functionality needed for ThingM blink(1) on major platforms only. Therefore, not all HID features have been implemented.
The gid
package owes its genesis to the following repositories:
The included dependencies carry the following licenses:
hidapi
: 3-clause BSDlibusb
: GNU LGPL 2.1gowchar
: 3-clause BSD
Being open-source, the gid
package is licensed under the widely-accepted MIT license.