[package] name = "rdev" version = "0.5.3" authors = ["Nicolas Patry "] edition = "2018" description = "Listen and send keyboard and mouse events on Windows, Linux and MacOS." documentation = "https://docs.rs/rdev/" homepage = "https://github.com/Narsil/rdev" repository = "https://github.com/Narsil/rdev" readme = "README.md" keywords = ["input", "mouse", "testing", "keyboard", "automation"] categories = ["development-tools::testing", "api-bindings", "hardware-support"] license = "MIT" [dependencies] serde = {version = "1.0", features = ["derive"], optional=true} lazy_static = "1.4" [features] serialize = ["serde"] unstable_grab = ["evdev-rs", "epoll", "inotify"] [target.'cfg(target_os = "macos")'.dependencies] cocoa = "0.22" core-graphics = {version = "0.19.0", features = ["highsierra"]} core-foundation = {version = "0.7"} core-foundation-sys = {version = "0.7"} [target.'cfg(target_os = "linux")'.dependencies] libc = "0.2" x11 = {version = "2.18", features = ["xlib", "xrecord", "xinput"]} evdev-rs = {version = "0.4.0", optional=true} epoll = {version = "4.1.0", optional=true} inotify = {version = "0.8.2", default-features=false, optional=true} [target.'cfg(target_os = "windows")'.dependencies] winapi = { version = "0.3", features = ["winuser", "errhandlingapi", "processthreadsapi"] } [dev-dependencies] serde_json = "1.0" # Some tests interact with the real OS. We can't hit the OS in parallel # because that leads to unexpected behavior and flaky tests, so we need # to run thoses tests in sequence instead. serial_test = "0.4" tokio = {version = "1.5", features=["sync", "macros", "rt-multi-thread"]} [[example]] name = "serialize" required-features = ["serialize"] [[example]] name = "grab" required-features = ["unstable_grab"] [[example]] name = "tokio_channel" required-features = ["unstable_grab"] [[test]] name = "grab" path = "tests/grab.rs" required-features = ["unstable_grab"]