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

Download history 25133/week @ 2024-05-03 25552/week @ 2024-05-10 24551/week @ 2024-05-17 24010/week @ 2024-05-24 23623/week @ 2024-05-31 24187/week @ 2024-06-07 25054/week @ 2024-06-14 25695/week @ 2024-06-21 24431/week @ 2024-06-28 24104/week @ 2024-07-05 24278/week @ 2024-07-12 26245/week @ 2024-07-19 25987/week @ 2024-07-26 27396/week @ 2024-08-02 27667/week @ 2024-08-09 19356/week @ 2024-08-16

每月下载量 105,496
用于 142 Crates(直接使用92个)

MIT 许可证

1MB
25K SLoC

C 17K SLoC // 0.3% comments Rust 6K SLoC // 0.0% comments C++ 1.5K SLoC // 0.1% comments Visual Studio Project 563 SLoC Visual Studio Solution 541 SLoC Automake 75 SLoC PowerShell 14 SLoC

Rusb

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

依赖关系

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

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

支持原生 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。

依赖关系