A Rust-based keyboard firmware library supporting layers, macros, real-time keymap editing, wireless BLE, and split keyboards.
RMK is a keyboard firmware library written in Rust for building custom mechanical and ergonomic keyboards. It provides a modern, performant alternative to traditional C-based firmware like QMK, with built-in support for advanced features and wireless connectivity.
Keyboard enthusiasts, makers, and embedded developers building custom mechanical or ergonomic keyboards who want a Rust-based firmware with modern features. It's also suitable for those seeking wireless (BLE) keyboard capabilities with low latency.
Developers choose RMK for its combination of Rust's safety and performance, broad microcontroller compatibility via the embassy framework, and integrated features like Vial support for real-time keymap editing. It offers optimized latency (~2ms wired, ~10ms wireless) and power efficiency, with a configuration approach that balances simplicity (TOML files) and deep customization (Rust code).
Rust keyboard firmware library with layers, macros, real-time keymap editing, wireless(BLE) and split support
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages the embassy embedded framework to support stm32, nRF, rp2040, esp32, and more, making it versatile for various keyboard builds.
Integrates Vial for live keymap modifications over USB or BLE, enhancing user experience without reflashing firmware.
Achieves low latency (~2ms wired, ~10ms wireless) and power efficiency, with battery life extending months on a 2000mAh cell using async_matrix.
Offers a simple keyboard.toml file for basic setup while allowing full Rust code customization, catering to both beginners and advanced users.
Requires familiarity with Rust and embedded Rust, which can be a barrier for those used to C-based firmwares like QMK, despite the TOML simplicity.
Installation involves multiple tools (e.g., probe-rs, flip-link, rmkit), with noted issues on Windows, adding overhead for quick prototyping.
BLE support is only confirmed for nRF52 and esp32 microcontrollers, restricting choices for other wireless chips without community patches.
rmk is an open-source alternative to the following products: