Skip to content
Switch branches/tags


Build Status Latest Version Documentation

A Rust wrapper for libevdev

# Cargo.toml
evdev-rs = "0.5.0"

to enable serialization support, enable the feature "serde"

# Cargo.toml
evdev-rs = { version = "0.5.0", features = ["serde"] }

Why a libevdev wrapper?

The evdev protocol is simple, but quirky, with a couple of behaviors that are non-obvious. libevdev transparently handles some of those quirks.

The evdev crate on [1] is an implementation of evdev in Rust. Nothing wrong with that, but it will miss out on any more complex handling that libevdev provides.



src/ can be generated by running ./tools/