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库支持的所有系统也支持libusbcrate。它已在Linux、OS X和Windows上进行了测试。
交叉编译
当交叉编译到国外目标时,可以使用rusbcrate。如何交叉编译rusb的详细信息请参阅libusb1-syscrate的README。
使用方法
在Cargo.toml中将rusb添加为依赖项
[dependencies]
rusb = "0.9"
导入rusbcrate。几乎所有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