cross-usb/README.md

1.6 KiB

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