Skip to content
/ nusb Public
forked from kevinmehall/nusb

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

License

Notifications You must be signed in to change notification settings

activeobd/nusb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

332 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This fork adds support for transferring data to isochronous USB endpoints on Windows (WinUSB)

Constraints on new transfer methods are defined by trait bounds for EndpointType and EndpointDirection.

Original description below

nusb

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

nusb supports Windows, macOS, and Linux, and provides both async and blocking APIs for listing and watching USB devices, reading descriptor details, opening and managing devices and interfaces, and performing transfers on control, bulk, and interrupt endpoints.

Compared to rusb and libusb

  • Pure Rust, no dependency on libusb or any other C library.
  • Async-first, while not requiring an async runtime.
  • 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.

License

MIT or Apache 2.0, at your option

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%