<html><body><div>Hey folks,</div><div><br data-mce-bogus="1"></div><div>This sounds really great, do you think you can contribute your work to the main WireGuard Rust source?</div><div><br data-mce-bogus="1"></div><div>Best regards,</div><div>Sascha</div><div class="x-apple-signature"></div><div><br>Am 13. März 2017 um 08:04 schrieb sopium <sopium@mysterious.site>:<br><br></div><div><blockquote type="cite"><div class="msg-quote"><div class="_stretch"><span class="body-text-content">Hi,<br><br>2017-03-05 20:42 GMT+09:00 Sascha Grunert <saschagrunert@icloud.com>:<br><blockquote type="cite" class="quoted-plain-text">Hey folks,</blockquote><blockquote type="cite" class="quoted-plain-text"><br></blockquote><blockquote type="cite" class="quoted-plain-text">I want to call for participation of the Rust userspace implementation of WireGuard. The template for the initial implementation was this: <a href="https://www.wireguard.io/xplatform/" data-mce-href="https://www.wireguard.io/xplatform/">https://www.wireguard.io/xplatform/</a> and can be found here: <a href="https://git.zx2c4.com/wireguard-rs/" data-mce-href="https://git.zx2c4.com/wireguard-rs/">https://git.zx2c4.com/wireguard-rs/</a>.</blockquote><blockquote type="cite" class="quoted-plain-text"><br></blockquote><blockquote type="cite" class="quoted-plain-text">[......]</blockquote><br>I have got an initial working prototype of the WireGuard protocol in<br>Rust.<br><br>The code is at the `wg` branch of `TiTun`[1].<br><br>1. <a href="https://github.com/sopium/titun/tree/wg" data-mce-href="https://github.com/sopium/titun/tree/wg">https://github.com/sopium/titun/tree/wg</a><br><br>Most of the essential aspects of the WireGuard protocol is<br>implemented. The missing parts should not be too hard to add.<br><br>Only Linux is supported, for the moment.<br><br>The implementation is quite fast 🚀, although I haven't spent a lot of<br>effort in optimization yet. It uses a fixed number of threads to<br>process packets from UDP socket or TUN device (similar to the other<br>Haskell impl, nara), and uses fine-grained locking to exploit<br>parallelism. I get 600Mbps+ to 800Mbps+ throughput and about 0.5ms<br>latency, between my Haswell Xeon-E3 desktop and a local KVM<br>instance. It should be able to get even faster with SO_REUSEPORT<br>sockets and multi-queue TUN devices.<br><br>Please review and test.<br><br>Regards,<br>Sopium<br><br><br></span></div></div></blockquote></div></body></html>