{"id":24806159,"url":"https://github.com/hid-io/hid-io-core","last_synced_at":"2025-04-09T17:24:02.831Z","repository":{"id":48278555,"uuid":"93565883","full_name":"hid-io/hid-io-core","owner":"hid-io","description":"HID-IO Library and Daemon","archived":false,"fork":false,"pushed_at":"2024-07-09T17:30:53.000Z","size":29906,"stargazers_count":72,"open_issues_count":15,"forks_count":10,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-02T10:40:24.491Z","etag":null,"topics":["daemon","keyboards","linux","macos","rust","windows"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hid-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-06T21:34:29.000Z","updated_at":"2025-03-02T18:01:59.000Z","dependencies_parsed_at":"2025-03-03T04:11:16.578Z","dependency_job_id":"789a43e3-d841-483e-b46e-6da534386b51","html_url":"https://github.com/hid-io/hid-io-core","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hid-io%2Fhid-io-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hid-io%2Fhid-io-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hid-io%2Fhid-io-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hid-io%2Fhid-io-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hid-io","download_url":"https://codeload.github.com/hid-io/hid-io-core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248075515,"owners_count":21043601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["daemon","keyboards","linux","macos","rust","windows"],"created_at":"2025-01-30T08:19:23.195Z","updated_at":"2025-04-09T17:24:02.799Z","avatar_url":"https://github.com/hid-io.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hid-io-core\n\n[![Linux Status](https://github.com/hid-io/hid-io-core/workflows/Rust%20Linux/badge.svg)](https://github.com/hid-io/hid-io-core/actions)\n[![macOS Status](https://github.com/hid-io/hid-io-core/workflows/Rust%20macOS/badge.svg)](https://github.com/hid-io/hid-io-core/actions)\n[![Windows Status](https://github.com/hid-io/hid-io-core/workflows/Rust%20Windows/badge.svg)](https://github.com/hid-io/hid-io-core/actions)\n[![Doc Status](https://github.com/hid-io/hid-io-core/workflows/Rust%20Doc%20Deploy/badge.svg)](https://github.com/hid-io/hid-io-core/actions)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/hid-io/hid-io-core.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/hid-io/hid-io-core/alerts/)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/hid-io/hid-io-core.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/hid-io/hid-io-core/context:python)\n\n[![docs.rs](https://docs.rs/hid-io-core/badge.svg)](https://docs.rs/hid-io-core)\n[![Crates.io](https://img.shields.io/crates/v/hid-io-core.svg)](https://crates.io/crates/hid-io-core)\n[![Crates.io](https://img.shields.io/crates/l/hid-io-core.svg)](https://crates.io/crates/hid-io-core)\n[![Crates.io](https://img.shields.io/crates/d/hid-io-core.svg)](https://crates.io/crates/hid-io-core)\n\nHID-IO Client Side Library and Daemon\n\n### Overview\n\n![Overview](misc/images/HID-IO_Overview.png)\n\n### API Documentation\n\n* [master](https://hid-io.github.io/hid-io-core/hid_io_core/)\n\n## Getting\n\nCurrently 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.\n\n## Usage\n\n```bash\nhid-io\nhid-io --help\n```\n\n## RPC Terminal Example\n\nFirst start hid-io-core in one terminal:\n\n```bash\nRUST_BACKTRACE=full RUST_LOG=\"info,tokio=info,tokio_core::reactor=info\" cargo run\n```\n\n```\n    Finished dev [unoptimized + debuginfo] target(s) in 0.12s\n     Running `target/debug/hid-io-core`\nINFO [hid_io_core] -------------------------- HID-IO Core starting! --------------------------\nINFO [hid_io_core] Log location -\u003e \"/tmp\"\nPress Ctrl-C to exit...\nINFO [hid_io_core] Version: 0.1.0-beta3 (git v0.1.0-beta3-9-g29548e1) - debug\nINFO [hid_io_core] Build: rustc 1.44.0-nightly (f509b26a7 2020-03-18) (x86_64-unknown-linux-gnu) -\u003e x86_64-unknown-linux-gnu (Sun, 29 Mar 2020 21:40:53 GMT)\nINFO [hid_io_core] Initializing HID-IO daemon...\nINFO [hid_io_core::module] Initializing modules...\nINFO [hid_io_core::device] Initializing devices...\nINFO [hid_io_core::device::hidusb] Initializing device/hidusb...\nINFO [hid_io_core::device::debug] Initializing device/debug...\nINFO [hid_io_core::api] Initializing api...\nINFO [hid_io_core::device::hidusb] Spawning hidusb spawning thread...\nINFO [hid_io_core::device::debug] Spawning device/debug spawning thread...\nINFO [hid_io_core::module] Current layout: us\nAPI: Listening on [::1]:7185\nINFO [hid_io_core::device::hidusb] Connecting to id:1 Device: \"/dev/hidraw12\"\n    [308f:0013-ff1c:1100] I:4 Input Club Keyboard - Kira PixelMap USB (5337310036384B323430313035353031 - sam4s8) R:1222\nConnected to id:1 USB [308f:0013-ff1c:1100] [Input Club] Keyboard - Kira PixelMap USB 5337310036384B323430313035353031 - sam4s8\nINFO [hid_io_core::device] Registering device: 1\nINFO [hid_io_core::api] Node list update detected, pushing list to subscribers -\u003e 0\n```\n\nThen in another terminal window, start the RPC example program. This will connect you to the device serial port.\nOnce it's connected, you may begin typing commands.\n\n```bash\ncargo run --example rpc\n```\n\n```\n    Finished dev [unoptimized + debuginfo] target(s) in 0.12s\n     Running `target/debug/examples/rpc`\nConnecting to [::1]:7185\nVersion:    0.1.0-beta3 (git v0.1.0-beta3-9-g29548e1)\nBuildtime:  Sun, 29 Mar 2020 21:40:53 GMT\nServerarch: x86_64-unknown-linux-gnu\nCompiler:   rustc 1.44.0-nightly (f509b26a7 2020-03-18)\nKey Path:   /tmp/.tmpGET4P5\nKey:        otrbfPWsyZKa6VrWFTXHL\nId:         2\nRegistering to UsbKeyboard: [308f:0013-ff1c:1100] [Input Club] Keyboard - Kira PixelMap USB (5337310036384B323430313035353031 - sam4s8)\nREADY\n\n\n:\n\n:\n\n: version\nversion\n Revision:      e1a1d816199bf54f42432f6d9097171a1614b6a0\n Revision #:    1222\n Version:       v0.5.7 (+0:1222)\n Branch:        HEAD\n Tree Status:   Clean\n\t\n Repo Origin:   https://github.com/kiibohd/controller.git\n Commit Date:   2020-03-20 20:19:26 -0700\n Commit Author: Jacob Alexander \u003chaata@kiibohd.com\u003e\n Build Date:    2020-03-23 22:49:38 +0000\n Build OS:      Ubuntu 18.04.1 LTS bionic\n Compiler:      /usr/lib/ccache/arm-none-eabi-gcc 6.3.1\n Architecture:  arm\n Chip Compiled: sam4s8 (sam4s8b)\n CPU:           cortex-m4\n Device:        Keyboard\n Modules:       Scan(Kira) Macro(PixelMap) Output(USB) Debug(full)\n\n CPU Detected:  SAM4S8C (Rev B)\n CPU Id:        0x410FC241\n  (Implementor:ARM:0x41)(Variant:0x0)(Arch:0xF)(PartNo:Cortex-M4:0xC24)(Revision:0x1)\n Chip Id:       0x28AC0AE1\n  (Version:0x1)(Proc:CM4:0x7)(NVM1:512kB:0xA)(NVM2:0kB:0x0)(SRAM:128kB:0xC)(Arch:SAM4SxC:0x8A)(NVMType:FLASH:0x2)(ExtId:0x0)\n Chip Ext:      0x0\n Unique Id:     5337310036384B323430313035353031\n:\n```\n\n## Dependencies\n\n* Rust nightly (may relax over time)\n* capnproto \u003e= 0.7.0\n\n### i686-pc-windows-gnu Dependencies\n\n* `make` must be path\n\n## Building\n\n```bash\ncargo build\n```\n\n## Testing\n\n```bash\nRUST_LOG=hid_io=info RUST_BACKTRACE=1 cargo run\n```\n\nInspecting rawhid traffic:\n\n```bash\nsudo usbhid-dump -m 308f:0013 -es\nsudo usbhid-dump -m 1c11:b04d -es -t 0 -i 5\n```\n\n### Running Unit Tests\n\n```bash\ncargo test\n```\n\n## Supported Keyboard Firmware\n\n* [kiibohd](https://github.com/kiibohd/controller) (KLL) - **In Progress**\n\n## Contributing\n\n* Please run `cargo test` before submitting a pull-request\n* Travis will fail any commits that do not pass all tests\n\n## Debugging\n\n```bash\necho 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope\nrust-gdb target/debug/hid-io -p $(pidof hid-io)\n```\n\n## Packaging\n\n```bash\ncargo build --release --target \"x86_64-pc-windows-gnu\"\n```\n\n## Linux systemd service\n\n```bash\ncp hid-io.service /etc/systemd/system\nsystemctl daemon-reload\nsystemctl enable --now hid-io\n```\n\n## Windows service\n\n```batch\ninstall_service.exe\nsc start hid-io\nsc stop hid-io\nsc query hid-io\n```\n\n## OSX service\n\n```bash\ncp hidio.plist ~/Library/LaunchAgents\nlaunchctl -w  ~/Library/LaunchAgents/hidio.plist\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhid-io%2Fhid-io-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhid-io%2Fhid-io-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhid-io%2Fhid-io-core/lists"}