nusb

Crates.ionusb
lib.rsnusb
version0.1.12
sourcesrc
created_at2023-10-08 21:44:04.812667
updated_at2024-11-21 06:09:57.09747
descriptionCross-platform low-level access to USB devices in pure Rust
homepage
repositoryhttps://github.com/kevinmehall/nusb
max_upload_size
id997458
size338,494
Kevin Mehall (kevinmehall)

documentation

README

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, 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

Commit count: 209

cargo fmt