/rust-wooting-sdk

Rust bindings for Wooting Analog and RGB SDKs!

Primary LanguageRustApache License 2.0Apache-2.0

rust-wooting-sdk

This crate provides Rust bindings to the Analog and RGB SDKs provided by Wooting for the Wooting One and Wooting Two.

See the documentation for more information on usage and prerequisites.

Known issues

This repository currently uses a fork of the Wooting SDKs that allow them to be built on Linux and that add partial support for the Wooting Two (direct_set_key will not work for the numpad keys).

As soon as an updated version of the SDK is made available, this crate will switch to use it.

Prerequisites

In order to generate bindings for the SDKs using bindgen, wooting-analog-sdk-sys and wooting-rgb-sdk-sys require libclang. If the submodules for the SDKs are not cloned, then the build scripts will attempt to clone them, in this case, git is required. When building the SDKs, libusb or libudev will be required for the SDKs' hidapi dependency on Linux, these are expected to exist.

Windows

Download and install the official pre-built binary for libclang from the LLVM download page.

Mac

If using Homebrew, run:

brew install llvm

If using MacPorts, run:

port install clang-3.9

Linux

If running Ubuntu 16.10 or greater, run:

apt install llvm-3.9-dev libclang-3.9-dev clang-3.9 libusb-1.0.0-dev libusb-1.0.0

If running a version earlier than Ubuntu 16.10, then you may need to use the LLVM apt repositories.

If using any other distribution, then you'll just need to figure it out yourself.

License

All of the crates contained in this repo are licensed under both MIT and Apache 2.0. Both the Wooting Analog SDK and Wooting RGB SDK are licensed under MPL.

Code of Conduct

All interactions on this repository (whether on issues, PRs, or elsewhere) are governed by the Rust Code of Conduct.