11 releases
Uses new Rust 2024
| 0.3.3 | Jul 25, 2025 |
|---|---|
| 0.3.2 | Jul 25, 2025 |
| 0.2.3 | Jul 15, 2025 |
| 0.1.4 |
|
| 0.1.3 | Jun 22, 2025 |
#299 in Unix APIs
30 downloads per month
Used in autokbdlight
315KB
7K
SLoC
evdevil: Rust bindings to evdev and uinput
This library provides an interface to the Linux and FreeBSD input device subsystem.
Features
- Ergonomic Rusty API designed for stability.
- Exposes almost every
evdevanduinputfeature, including force-feedback and multitouch. - Device Hotplug support.
- Light on dependencies.
- FreeBSD compatibility.
asyncsupport via Tokio orasync-io.
Cargo Features
| Feature | Description |
|---|---|
serde |
Implements Serialize and Deserialize for many event code wrappers like Key, Rel, etc. |
tokio |
Uses tokio to enable async event reading using EventReader. |
async-io |
Uses async-io to enable async event reading using EventReader. |
Rust Support
This library targets the latest Rust version.
Older Rust versions are supported by equally older versions of this crate. For example, to use a version of Rust that was succeeded 6 months ago, you'd also use an at least 6 month old version of this library.
Compatibility with older Rust versions may be provided on a best-effort basis.
Development
Testing
The crate is tested using end-to-end tests that create a virtual uinput device and then open it.
This means the user running the tests needs to have permission to write to /dev/uinput and the input devices in /dev/input/event*.
Dependencies
~0.1–14MB
~123K SLoC