13 releases (8 breaking)
Uses old Rust 2015
0.9.1 | Oct 22, 2024 |
---|---|
0.9.0 | Jul 17, 2024 |
0.8.0 | Sep 22, 2023 |
0.7.0 | Nov 2, 2022 |
0.1.0 | Nov 21, 2014 |
#32 in Hardware support
107,516 downloads per month
Used in 84 crates
(22 directly)
61KB
1K
SLoC
udev
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.
Dependencies
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.
Cross-Compiling
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.
Usage
Add udev
as a dependency in Cargo.toml
:
[dependencies]
udev = "^0.9.1"
If you plan to support operating systems other than Linux, you'll need to add udev
as a
target-specific dependency:
[target.x86_64-unknown-linux-gnu.dependencies]
udev = "^0.9.1"
Import the udev
crate.
extern crate udev;
fn main() {
let mut enumerator = udev::Enumerator::new().unwrap();
enumerator.match_subsystem("tty").unwrap();
for device in enumerator.scan_devices().unwrap() {
println!("found device: {:?}", device.syspath());
}
}
Contributors
- drakulix
- dcuddeback
- mulkieran
- Susurrus
- woodruffw
- Ravenslofty
- sjoerdsimons
- anelson
- ollpu
- a1ien
- lj94093
- patrickelectric
- TomzBench
License
Copyright © 2017 Victoria Brekenfeld Copyright © 2015 David Cuddeback
Copyright for portions of the project are held by [David Cuddeback, 2015] as part of the project. All other copyright for the project are held by [Victoria Brekenfeld, 2017].
Distributed under the MIT License.
Dependencies
~0–7MB
~46K SLoC