#devices #daemon #channel #hid #advanced #api #service

nightly bin+lib hid-io

HID-IO is a host-side daemon for advanced HID devices

1 unstable release

0.1.0-beta1 Oct 13, 2019

#12 in #advanced

GPL-3.0-or-later

540KB
2.5K SLoC

hid-io

HID-IO Client Side Library and Daemon

Overview

Travis Status

Visit our IRC channel

API Documentation

Getting

Currently you have to build the HID-IO daemon yourself. But it will be made available in binary form once we are ready for a public beta.

Usage

hid-io
hid-io --help

RPC Terminal Example

cargo run --example rpc

Dependencies

  • Rust nightly (may relax over time)
  • capnproto >= 0.7.0

i686-pc-windows-gnu Dependencies

  • make must be path

Building

cargo build

Testing

RUST_LOG=hid_io=info RUST_BACKTRACE=1 cargo run

Inspecting rawhid traffic:

sudo usbhid-dump -m 308f:0013 -es sudo usbhid-dump -m 1c11:b04d -es -t 0 -i 5

Running Unit Tests

cargo test

Supported Keyboard Firmware

Contributing

  • Please run cargo test before submitting a pull-request

  • Travis will fail any commits that do not pass all tests

Debugging

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope rust-gdb target/debug/hid-io -p $(pidof hid-io)

Packaging

cargo build --release --target "x86_64-pc-windows-gnu"

Linux systemd service

cp hid-io.service /etc/systemd/system systemctl daemon-reload systemctl enable --now hid-io

Windows service

install_service.exe sc start hid-io sc stop hid-io sc query hid-io

OSX service

cp hidio.plist ~/Library/LaunchAgents launchctl -w ~/Library/LaunchAgents/hidio.plist

Dependencies

~23–38MB
~680K SLoC