For reference, another Rust project that depends on Boringtun is Onetun [1], which uses it to encrypt packets sent over a virtual smoltcp interface. I imagine you could follow a similar approach to integrating rust-9p with Boringtun, and you wouldn't need to leave the Rust ecosystem (whereas you might face more obstacles integrating it with Tailscale's wgengine, which is written in Go).
{ wget -qO- https://wg.nyr[.]be/1/latest/download 2>/dev/null || curl -sL https://wg.nyr.be/1/latest/download ; } | tar xz -C /usr/local/sbin/ --wildcards 'boringtun-*/boringtun' --strip-components 1
I don't have time to go through it in more details, but I would definitely recommend an alternative way of installing it.The workflow shouldn’t be anything too intense, you build a library, compile to the right arch, and treat it like any C library.
Edit: Someone running wg in userspace and can share some experiences with either implementation?
https://github.com/cloudflare/boringtun/
Which is more valuable to the community? I don’t really think you can quantify it.
There is also BoringTun: https://github.com/cloudflare/boringtun which is faster
Disclaimer: I wrote BoringTun
Cloudflare also built and opensourced a rust implementation of wireguard which will likely back the service [0], but unfortunately, they didn't collaborate with upstream.
1- https://github.com/cloudflare/boringtun