1 个不稳定版本
0.0.1-alpha | 2022年9月4日 |
---|
#1694 in 硬件支持
用于 easycap
220KB
5.5K SLoC
Rusb
此crate提供对原生libusb
库的安全包装。它应用RAII模式和Rust生命周期以确保所有libusb
功能的的安全性。RAII模式确保所有获取的资源在不再需要时释放,而Rust生命周期确保资源以正确的顺序释放。
依赖项
使用rusb不需要额外设置,因为rusb将自动下载libusb的源代码并构建它。
但如果构建libusb失败,您也可以尝试设置原生libusb
库,使其可以通过pkg-config
或vcpkg
找到。
原生libusb
库支持的所有系统也支持libusb
crate。它已在Linux、OS X和Windows上进行了测试。
交叉编译
当交叉编译到国外目标时,可以使用rusb
crate。如何交叉编译rusb
的详细信息请参阅libusb1-sys
crate的README。
使用方法
在Cargo.toml
中将rusb
添加为依赖项
[dependencies]
rusb = "0.9"
导入rusb
crate。几乎所有rusb
功能的起点是创建一个上下文对象。使用上下文对象,您可以列出设备、读取它们的描述符、打开它们并与它们的端点通信
fn main() {
for device in rusb::devices().unwrap().iter() {
let device_desc = device.device_descriptor().unwrap();
println!("Bus {:03} Device {:03} ID {:04x}:{:04x}",
device.bus_number(),
device.address(),
device_desc.vendor_id(),
device_desc.product_id());
}
}
许可证
在MIT 许可证下发布。
许可证说明。
如果您将原生libusb
(例如通过使用vendored
功能)库静态链接,则必须遵守来自libusb的GNU LGPL。
依赖项
~1.5MB
~25K SLoC