No description
Find a file
2023-10-05 22:36:23 -06:00
examples Strongly-typed IN vs OUT buffer types 2023-10-05 22:27:03 -06:00
src windows: stub implementation 2023-10-05 22:36:23 -06:00
.gitignore Initial commit: bulk transfers on Linux usbfs 2023-09-30 16:51:13 -06:00
Cargo.toml Update to released rustix 2023-10-05 19:35:31 -06:00
LICENSE-APACHE A little bit of documentation 2023-10-01 12:20:30 -06:00
LICENSE-MIT A little bit of documentation 2023-10-01 12:20:30 -06:00
README.md A little bit of documentation 2023-10-01 12:20:30 -06:00

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 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.
  • Doesn't try to paper over OS differences. For example, on Windows, you must open a specific interface, not a device as a whole. nusb's API makes working with interfaces a required step so that it can map directly to Windows APIs.

Current status

🚧 Control, bulk and interrupt transfers work on Linux, minimally tested

License

MIT or Apache 2.0, at your option