20个版本
0.9.4 | 2024年4月27日 |
---|---|
0.9.3 | 2023年8月25日 |
0.9.2 | 2023年3月26日 |
0.9.1 | 2022年4月11日 |
0.4.0 | 2019年7月28日 |
在硬件支持中排名 10
每月下载量 105,496
用于 142 个 Crates(直接使用92个)
1MB
25K 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
功能),则必须遵守 GNU LGPL,来自libusb。