12 releases
new 0.1.11 | Nov 3, 2024 |
---|---|
0.1.10 | Jul 28, 2024 |
0.1.9 | Apr 30, 2024 |
0.1.7 | Mar 3, 2024 |
0.1.1 | Nov 8, 2023 |
#86 in Hardware support
5,522 downloads per month
Used in 29 crates
(15 directly)
305KB
7K
SLoC
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.
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, packetry, 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
Dependencies
~0.1–14MB
~120K SLoC