<div dir="auto">Hey Sopium,<div dir="auto"><br></div><div dir="auto">Wonderful! I'm traveling now but will review first thing next week.</div><div dir="auto"><br></div><div dir="auto">Please make sure you've implementedĀ <a href="https://www.wireguard.io/xplatform/">https://www.wireguard.io/xplatform/</a> so that all implementations can share the same tooling.</div><div dir="auto"><br></div><div dir="auto">Jason</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mar 13, 2017 00:04, "sopium" <sopium@mysterious.site> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<div class="quoted-text"><br>
2017-03-05 20:42 GMT+09:00 Sascha Grunert <<a href="mailto:saschagrunert@icloud.com">saschagrunert@icloud.com</a>>:<br>
> Hey folks,<br>
><br>
> 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/" rel="noreferrer" target="_blank">https://www.wireguard.io/<wbr>xplatform/</a> and can be found here: <a href="https://git.zx2c4.com/wireguard-rs/" rel="noreferrer" target="_blank">https://git.zx2c4.com/<wbr>wireguard-rs/</a>.<br>
><br>
</div>> [......]<br>
<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" rel="noreferrer" target="_blank">https://github.com/sopium/<wbr>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>
<div class="elided-text"><br>
<br>
______________________________<wbr>_________________<br>
WireGuard mailing list<br>
<a href="mailto:WireGuard@lists.zx2c4.com">WireGuard@lists.zx2c4.com</a><br>
<a href="https://lists.zx2c4.com/mailman/listinfo/wireguard" rel="noreferrer" target="_blank">https://lists.zx2c4.com/<wbr>mailman/listinfo/wireguard</a><br>
</div></blockquote></div><br></div>