No description
IOUSBInterfaceInterface700 was added in macOS 10.10+ and IOUSBDeviceInterface650 in macOS 10.9+, both older than Rust's minimum of 10.12 so technically the breaking change was already broken by Rust, but might as well get this in on the nusb v0.2 semver bump. Co-authored-by: Charles Strahan <charles@cstrahan.com> |
||
|---|---|---|
| .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