// the find
TeXitoi/keyberon
A rust crate to create a pure rust keyboard firmware.
Keyberon is a no_std Rust library for building custom keyboard firmware on microcontrollers like STM32. It gives you composable building blocks — matrix scanning, debouncing, layer handling, HID output — that you wire together yourself rather than configuring a monolithic firmware. Aimed at people who want to write their own keyboard firmware from scratch and understand exactly what's running on their hardware.
Runs on stable Rust with no_std, so it's genuinely usable without nightly toolchain churn. The layer/hold-tap system is well-thought-out — last-pressed-layer semantics and transparent keys handle the common edge cases that trip up simpler implementations. The library approach (not a framework) means you can drop in your own debounce logic or USB descriptor without forking the whole thing. There are real reference keyboards in the wild using it, so the abstractions have been validated against actual hardware.
Still on Travis CI (the badge in the README links to travis-ci.org, which shut down for open source years ago — the build status is dead). No Bluetooth or wireless support, which rules it out for anything not USB-tethered. The last meaningful development appears to have wound down; the ecosystem has largely moved to Embassy-based firmware, and Keyberon predates async embedded Rust entirely, so it doesn't integrate with that model. Documentation is thin beyond the README — you're expected to read source and reference keyboards to understand how the pieces fit together.