[Spice-devel] WIP: usbredir rust bindings

Marc-André Lureau marcandre.lureau at gmail.com
Tue Aug 3 10:46:51 UTC 2021


Hi

Just to let you know that I started a usbredir binding to Rust:
https://gitlab.freedesktop.org/elmarco/usbredir-rs

Atm, it compiles with a custom rusb. I have some MR there (
https://github.com/a1ien/rusb/pull/97 &
https://github.com/a1ien/rusb/pull/101)

See the example:
https://gitlab.freedesktop.org/elmarco/usbredir-rs/-/blob/main/usbredirhost/examples/usbredir.rs

Atm, I pass an open fd with bash for testing, ex:
exec 3<>/dev/tcp/localhost/7777
target/debug/examples/usbredir '1050:0407' --fd 3

Next, it could be extended this with [--tcp host:port], [--unix path],
[-l|--listen]. Then I suppose it will be close to
https://gitlab.freedesktop.org/spice/usbredir/-/blob/master/tools/usbredirect.c

(Note that the Rust code doesn't use poll(), since it isn't portable. See
https://libusb.sourceforge.io/api-1.0/group__libusb__poll.html#libusb_pollmain.
The libusb/usbredir APIs don't make it easy to handle events..)

-- 
Marc-André Lureau
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20210803/87c0322c/attachment.htm>


More information about the Spice-devel mailing list