No description
The default mapping from OS error codes to io::Error's messages is often wrong or misleading. We can do a lot better, but it takes a lot of error-handling code. |
||
|---|---|---|
| .github/workflows | ||
| examples | ||
| fuzz | ||
| src | ||
| .gitignore | ||
| Cargo.toml | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
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
tokioorasync-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, and macOS
- Device listing and descriptor parsing
- Transfers on control, bulk and interrupt endpoints
- Used in production by probe-rs and others, but still relatively new. Please test with your device and report issues.
License
MIT or Apache 2.0, at your option