1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
nusb
----
A new pure-Rust library for cross-platform low-level access to USB devices.
[Documentation](https://docs.rs/nusb)
### Compared to [rusb](https://docs.rs/rusb/latest/rusb/) and [libusb](https://libusb.info/)
* Pure Rust, no dependency on libusb or any other C library.
* Async-first, while not requiring an async runtime like `tokio` or
`async-std`. Still easily supports blocking with
`futures_lite::block_on`.
* No context object. You just open a device. There is a global event loop thread
that is started when opening the first device.
* Thinner layer over OS APIs, with less internal state.
### Current status
* Support for Linux, Windows, macOS, and Android
* Device listing and descriptor parsing
* Transfers on control, bulk and interrupt endpoints
* Device connect / disconnect events on all platforms
* Used by [probe-rs](https://github.com/probe-rs/probe-rs),
[packetry](https://packetry.readthedocs.io/en/latest/),
[postcard-rpc](https://github.com/jamesmunns/postcard-rpc)
and others, but still relatively new. Please test with your device and report issues.
### License
MIT or Apache 2.0, at your option
|