Hi, On Tue, Aug 03, 2021 at 02:46:51PM +0400, Marc-André Lureau wrote: > 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 Awesome work! I'm actually in favor of moving usbredir codebase to Rust in the future as it is not that big ~ 6k lines of code (usbredirhost and usbredirparser). > 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..) Yes and I think it is fine. Cheers, Victor
Attachment:
signature.asc
Description: PGP signature