1 个不稳定版本

0.0.1-alpha2022年9月4日

#1694 in 硬件支持


用于 easycap

MIT 协议

220KB
5.5K SLoC

Rusb

此crate提供对原生libusb库的安全包装。它应用RAII模式和Rust生命周期以确保所有libusb功能的的安全性。RAII模式确保所有获取的资源在不再需要时释放,而Rust生命周期确保资源以正确的顺序释放。

依赖项

使用rusb不需要额外设置,因为rusb将自动下载libusb的源代码并构建它。

但如果构建libusb失败,您也可以尝试设置原生libusb库,使其可以通过pkg-configvcpkg找到。

原生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