|0.4.0||Apr 7, 2021|
|0.3.1||Mar 28, 2021|
|0.2.5||Mar 27, 2021|
|0.2.1||Sep 11, 2020|
#78 in Hardware support
60 downloads per month
Used in 2 crates
Inspired by the C http://libusb.info driver.
Rust usbapi crate currently only support Linux.
UsbAPI crate does not have any dependencies on libusb C API's and is a clean implementation in Rust using ioctl/mmap calls on Linux using nix low level crate.
You are free to fork or send pull request and make it work on other platforms.
See Cargo.toml I try to use as less as possible.
- Enumerate USB peripherals
- Zero copy using mmap buffers.
- Sync bulk API's
- Async bulk and control transmissions
- Transfers are safe and can't be accessed after passed to kernel
- Optional all descriptors can be serialized if feature serde is enabled.
- Optional mio support
When I started this project I was new in Rust. Some stuff will change.
- Cleanup traits implementations for easier port to other platforms
- Use valgrind to cleanup possible leaks in unsafe code (eg mmap etc...
- Add isochronous support
- Add interrupt endpoints
- Use log crate instead of eprintln and println for debug.
- claim_interface will panic if kernel driver is loaded since unload driver is not implemented cant test so not implemented feel free to send patch if needed.
- Support FreeBSD/OpenBSD
- Support NetBSD
- Support Haiku
- Support OSX
- Support Windows