Rust implementation status

Sascha Grunert saschagrunert at
Mon Mar 13 18:00:39 CET 2017

Hey folks,

This sounds really great, do you think you can contribute your work to the main WireGuard Rust source?

Best regards,

Am 13. März 2017 um 08:04 schrieb sopium <sopium at>:


2017-03-05 20:42 GMT+09:00 Sascha Grunert <saschagrunert at>:
Hey folks,

I want to call for participation of the Rust userspace implementation of WireGuard. The template for the initial implementation was this: and can be found here:


I have got an initial working prototype of the WireGuard protocol in

The code is at the `wg` branch of `TiTun`[1].


Most of the essential aspects of the WireGuard protocol is
implemented. The missing parts should not be too hard to add.

Only Linux is supported, for the moment.

The implementation is quite fast 🚀, although I haven't spent a lot of
effort in optimization yet. It uses a fixed number of threads to
process packets from UDP socket or TUN device (similar to the other
Haskell impl, nara), and uses fine-grained locking to exploit
parallelism. I get 600Mbps+ to 800Mbps+ throughput and about 0.5ms
latency, between my Haswell Xeon-E3 desktop and a local KVM
instance. It should be able to get even faster with SO_REUSEPORT
sockets and multi-queue TUN devices.

Please review and test.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the WireGuard mailing list