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 |
#313 in Unix APIs
24 downloads per month
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
evdev
anduinput
feature, including force-feedback and multitouch. - Device Hotplug support.
- Light on dependencies.
- FreeBSD compatibility.
async
support 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–11MB
~128K SLoC