This crate provides a safe wrapper around the native libudev
library. It applies the RAII pattern
and Rust lifetimes to ensure safe usage of all libudev
functionality. The RAII pattern ensures
that all acquired resources are released when they're no longer needed, and Rust lifetimes ensure
that resources are released in a proper order.
In order to use the libudev
crate, you must have a Linux system with the libudev
library
installed where it can be found by pkg-config
. To install libudev
on Debian-based Linux
distributions, execute the following command:
sudo apt-get install libudev-dev
libudev
is a Linux-specific package. It is not available for Windows, OS X, or other operating
systems.
The libudev
crate can be used when cross-compiling to a foreign target. Details on how to
cross-compile libudev
are explained in the libudev-sys
crate's
README.
Add libudev
as a dependency in Cargo.toml
:
[dependencies]
libudev = "0.1.1"
If you plan to support operating systems other than Linux, you'll need to add libudev
as a
target-specific dependency:
[target.x86_64-unknown-linux-gnu.dependencies]
libudev = "0.1.1"
Import the libudev
crate. The starting point for nearly all libudev
functionality is to create a
context object.
extern crate libudev;
fn main() {
let context = libudev::Context::new().unwrap();
let mut enumerator = libudev::Enumerator::new(&context).unwrap();
enumerator.match_subsystem("tty").unwrap();
for device in enumerator.scan_devices().unwrap() {
println!("found device: {:?}", device.syspath());
}
}
Copyright © 2015 David Cuddeback
Distributed under the MIT License.