| Crates.io | tauri-plugin-hid |
| lib.rs | tauri-plugin-hid |
| version | 0.2.2 |
| created_at | 2025-04-02 13:32:02.675141+00 |
| updated_at | 2025-04-22 21:49:21.663745+00 |
| description | A Tauri plugin to provide access to USB HID devices |
| homepage | https://github.com/RedfernElec/tauri-plugin-hid |
| repository | https://github.com/RedfernElec/tauri-plugin-hid |
| max_upload_size | |
| id | 1616506 |
| size | 171,263 |
Tauri plugin to provide access to USB HID devices.
Uses hidapi-rs on MacOS, Windows and Linux.
Uses Android UsbManager on Android.
⚠️ Warning: Work in Progress ⚠️
Features:
Limitations:
Install the plugin with cargo:
cd src-tauri
cargo add tauri-plugin-hid
Alternatively add the dependency directly to Cargo.toml:
[dependencies]
tauri-plugin-hid = "0.1.1"
Install the ts/js api:
npm add @redfernelec/tauri-plugin-hid-api
Add the plugin to src-tauri/src/lib.rs, for example:
tauri::Builder::default()
.plugin(tauri_plugin_opener::init())
.plugin(tauri_plugin_hid::init()) // Register hid plugin
.run(tauri::generate_context!())
.expect("error while running tauri application");
Add permisions to src-tauri/capabilities/default.json:
"permissions": [
"core:default",
"opener:default",
"hid:default"
]
Basic usage:
import { HidDevice, enumerate } from "@redfernelec/tauri-plugin-hid-api";
let myDevice: HidDevice | null = null;
// Enumerate devices and find one based on product string
let devices = await enumerate();
for (const device of devices) {
if (device.productString === "My Device") {
myDevice = device;
break;
}
}
if(myDevice) {
await myDevice.open();
await myDevice.write(new Uint8Array([0x00, 0x00]));
let data = await myDevice.read(2);
await myDevice.close();
}
An example Vue app is also included in examples/tauri-plugin-hid-vue-example.