39 stable releases
| 2.6.4 | Dec 20, 2025 |
|---|---|
| 2.6.3 | Aug 7, 2024 |
| 2.6.1 | Mar 2, 2024 |
| 2.4.1 | Jul 21, 2023 |
| 0.2.0 | Mar 12, 2016 |
#14 in Hardware support
72,981 downloads per month
Used in 343 crates
(154 directly)
430KB
9K
SLoC
hidapi

This crate provides a rust abstraction over the features of the C library hidapi. Based off of hidapi-rs by Osspial.
Usage
This crate is on crates.io and can be
used by adding hidapi to the dependencies in your project's Cargo.toml.
In case you are downloading / checking out this repository directly via git, make sure to initialize the git submodules after cloning!
git submodule update --init
Example
extern crate hidapi;
let api = hidapi::HidApi::new().unwrap();
// Print out information about all connected devices
for device in api.device_list() {
println!("{:#?}", device);
}
// Connect to device using its VID and PID
let (VID, PID) = (0x0123, 0x3456);
let device = api.open(VID, PID).unwrap();
// Read data from device
let mut buf = [0u8; 8];
let res = device.read(&mut buf[..]).unwrap();
println!("Read: {:?}", &buf[..res]);
// Write data to device
let buf = [0u8, 1, 2, 3, 4];
let res = device.write(&buf).unwrap();
println!("Wrote: {:?} byte(s)", res);
Documentation
Available at docs.rs.
Dependencies
~0–13MB
~98K SLoC