#wooting #keyboard #rgb #analog


Rust bindings for the Wooting Analog and RGB SDKs!

2 releases

0.1.1 Jun 19, 2020
0.1.0 Feb 28, 2019

#977 in Hardware support


3.5K SLoC

C 1.5K SLoC // 0.2% comments Rust 704 SLoC // 0.0% comments Visual Studio Project 478 SLoC C++ 314 SLoC // 0.1% comments Automake 78 SLoC // 0.0% comments Visual Studio Solution 38 SLoC Objective-C 30 SLoC // 0.1% comments Shell 26 SLoC // 0.3% comments


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.


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.


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


If using Homebrew, run:

brew install llvm

If using MacPorts, run:

port install clang-3.9


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.


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.