nusb
nusb copied to clipboard
A new pure-Rust library for cross-platform low-level access to USB devices.
For queue transfers on IN endpoints
For getting more precise speed info.
We currently only use [`WinUsb_Initialize`](https://learn.microsoft.com/en-us/windows/desktop/api/winusb/nf-winusb-winusb_initialize) to obtain a WinUSB handle. When multiple USB interfaces are represented by a single node in the Windows driver model, `WinUSB_Initialize` opens the first such...
* Linux * Typically `udev` * Rust [udev](https://crates.io/crates/udev) crate looks good, but wraps a C library. * There's also a way to get events directly from the kernel with a...
Windows serializes IN transfers by default, negating the usefulness of `Queue`. [RAW_IO](https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/winusb-functions-for-pipe-policy-modification) disables this. Libusb is [adding an option for RAW_IO](https://github.com/libusb/libusb/pull/1208) and decided to not turn it on by default...
Hi! I am in progress of creating a [Rust application](https://github.com/alufers/thermal-cat) to display a feed from thermal cameras. They are UVC devices (with some nasty non standard features, which require an...
Fixes #5 * [x] Windows * [ ] MacOS - mostly working - needs a way to safely clean up the shared state when dropping a HotplugWatch, currently just leaks...
I tested with my Xiaomi Mi 8 connected to a computer. Here is the code I used and the corresponding results
Since Linux 4.9, the usbfs subsystem includes a mechanism to support zero-copy transfers, by allowing userspace to `mmap` an open usbfs device to get a DMA-ready buffer. When such a...
For Rust async, it's normal for futures not to have their own timeouts. To implement a timeout you race the future with a timeout future such that the main future...