#usb-device #usb #packet #channel #gadget #async

upc

USB packet channel (UPC): provides a reliable, packet-based transport over USB

10 releases (4 breaking)

0.5.0 Apr 29, 2024
0.4.0 Nov 11, 2023
0.3.2 Nov 11, 2023
0.2.4 Nov 3, 2023
0.1.0 Oct 13, 2023

#1226 in Hardware support


Used in aggligator-util

Apache-2.0

42KB
827 lines

USB packet channel (UPC)

crates.io page docs.rs page Apache 2.0 license

This library provides a reliable, packet-based transport over a physical USB connection with an asynchronous API.

Features

This crate provides the following main features:

  • host enables the host-side part,
  • device enables the device-side part.

To be useful, at least one of these features must be enabled.

Additionally, the feature trace-packets can be enabled to log USB packets at log level trace.

Requirements

The minimum support Rust version (MSRV) is 1.73.

The host-side part supports any operating system supported by libusb.

The device-side part requires Linux and a USB device controller (UDC).

License

upc is licensed under the Apache 2.0 license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in upc by you, shall be licensed as Apache 2.0, without any additional terms or conditions.

Dependencies

~3–13MB
~138K SLoC