nusb
A new pure-Rust library for cross-platform low-level access to USB devices.
Compared to rusb and libusb
- Pure Rust, no dependency on libusb or any other C library.
- Async-first, while not requiring an async runtime like
tokio
orasync-std
. Still easily supports blocking withfutures_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.
:construction: Current status
- Support for Linux, Windows, and macOS
- Control, bulk and interrupt transfers work
- Minimally tested: please test with your device and report issues
License
MIT or Apache 2.0, at your option