7个不稳定版本

使用旧的Rust 2015

0.3.0 2016年9月10日
0.2.2 2015年11月5日
0.2.1 2015年10月18日
0.1.1 2015年5月24日
0.0.2 2015年3月29日

73 in #usb-device

Download history 872/week @ 2024-03-03 669/week @ 2024-03-10 769/week @ 2024-03-17 705/week @ 2024-03-24 707/week @ 2024-03-31 702/week @ 2024-04-07 873/week @ 2024-04-14 1169/week @ 2024-04-21 872/week @ 2024-04-28 695/week @ 2024-05-05 652/week @ 2024-05-12 683/week @ 2024-05-19 715/week @ 2024-05-26 833/week @ 2024-06-02 440/week @ 2024-06-09 319/week @ 2024-06-16

2,348 每月下载量
22 个crate(20个直接) 中使用

MIT 许可证

150KB
3K SLoC

Libusb

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

依赖项

为了使用libusb crate,您必须安装本地libusb库,使其可以通过pkg-config找到。

所有受本地libusb库支持的系统也受libusb crate的支持。它已在Linux、OS X和Windows上进行了测试。

交叉编译

当交叉编译到国外目标时,可以使用libusb crate。如何在libusb-sys crate的README中解释了如何交叉编译libusb的详细信息。

使用方法

Cargo.toml中将libusb作为依赖项添加

[dependencies]
libusb = "0.3"

导入libusb crate。几乎所有libusb功能的起点是创建一个上下文对象。有了上下文对象,您可以列出设备、读取它们的描述符、打开它们,并与它们的端点进行通信

extern crate libusb;

fn main() {
    let mut context = libusb::Context::new().unwrap();

    for mut device in context.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());
    }
}

贡献者

许可证

版权 © 2015 David Cuddeback

根据MIT 许可证分发。

依赖项

~195KB