cross_usb 0.3.3

A Rust USB library which works seamlessly across both native and WASM targets.
cross_usb-0.3.3 has been yanked.
Visit the last successful build: cross_usb-0.4.1

Cross USB

Lib.rs Version docs.rs

A USB library which works seamlessly across most native and WASM targets.


[!NOTE] Web USB only works in Chromium based browsers for now.

[!NOTE] Web USB has certain interation requirements in browsers, along with requiring a Secure context. Please read more about this on the mdn web docs

[!IMPORTANT] When compiling this crate on a WASM target, you must use either RUSTFLAGS=--cfg=web_sys_unstable_apis or by passing the argument in a .cargo/config.toml file. Read more here: https://rustwasm.github.io/wasm-bindgen/web-sys/unstable-apis.html

Dependencies

For native USB, the crate utilizies nusb, a pure rust library similar to the very popular libusb.

For WASM, this crate utilizes web-sys which gives access to browser API calls, and in this case is used to interact with WebUSB

TODO

  • Add choice for native backend between libusb wrapper and pure rust nusb
  • Allow platform-specific operations if the user requires them
  • Hot plug support... requires either using libusb as an optional backend or for nusb to implement it