No description
Find a file
Kevin Mehall 413093e181 Bump MSRV to 1.79
The associated type bounds feature, stabilized in 1.79 allows adding
an implied Send bound on all IntoFuture types used with MaybeFuture,
so every function doesn't have to be marked as Send.

This is going to be especially useful with wasm, because it allows the
Send bound to be turned on and off in one place.
2025-04-09 08:23:09 -06:00
.github/workflows Bump MSRV to 1.79 2025-04-09 08:23:09 -06:00
examples Make blocking APIs optionally async (#100) 2025-02-11 18:53:07 -07:00
fuzz impl Debug for descriptors 2023-12-16 23:05:03 -07:00
src Prepare for not requiring Send on wasm 2025-04-09 08:23:09 -06:00
.gitignore Initial commit: bulk transfers on Linux usbfs 2023-09-30 16:51:13 -06:00
Cargo.toml Bump MSRV to 1.79 2025-04-09 08:23:09 -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 Docs edits 2024-03-03 12:21:46 -07:00

nusb

A new pure-Rust library for cross-platform low-level access to USB devices.

Documentation

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.
  • 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