From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: saschagrunert@icloud.com Received: from krantz.zx2c4.com (localhost [127.0.0.1]) by krantz.zx2c4.com (ZX2C4 Mail Server) with ESMTP id a926539c for ; Mon, 13 Mar 2017 16:57:32 +0000 (UTC) Received: from st11p00im-asmtp001.me.com (st11p00im-asmtp001.me.com [17.172.80.95]) by krantz.zx2c4.com (ZX2C4 Mail Server) with ESMTP id c2b4cff2 for ; Mon, 13 Mar 2017 16:57:32 +0000 (UTC) Received: from process-dkim-sign-daemon.st11p00im-asmtp001.me.com by st11p00im-asmtp001.me.com (Oracle Communications Messaging Server 7.0.5.38.0 64bit (built Feb 26 2016)) id <0OMR00500IVOZ500@st11p00im-asmtp001.me.com> for wireguard@lists.zx2c4.com; Mon, 13 Mar 2017 17:00:44 +0000 (GMT) MIME-version: 1.0 Content-type: multipart/alternative; boundary="Boundary_(ID_oQT6zZC7Rs1STO+ulc3FXw)" To: sopium From: Sascha Grunert Subject: Re: Rust implementation status Date: Mon, 13 Mar 2017 17:00:39 +0000 (GMT) Message-id: Cc: wireguard@lists.zx2c4.com List-Id: Development discussion of WireGuard List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , --Boundary_(ID_oQT6zZC7Rs1STO+ulc3FXw) Content-type: text/plain; charset=utf-8; format=flowed Content-transfer-encoding: quoted-printable Hey folks,=0A=0AThis sounds really great, do you think you can contribute = your work to the main WireGuard Rust source?=0A=0ABest regards,=0ASascha=0A= =0AAm 13. M=C3=A4rz 2017 um 08:04 schrieb sopium := =0A=0AHi,=0A=0A2017-03-05 20:42 GMT+09:00 Sascha Grunert :=0AHey folks,=0A=0AI want to call for participation of the Rust = userspace implementation of WireGuard. The template for the initial implem= entation was this: https://www.wireguard.io/xplatform/ and can be found he= re: https://git.zx2c4.com/wireguard-rs/.=0A=0A[......]=0A=0AI have got an = initial working prototype of the WireGuard protocol in=0ARust.=0A=0AThe co= de is at the `wg` branch of `TiTun`[1].=0A=0A1. https://github.com/sopium/= titun/tree/wg=0A=0AMost of the essential aspects of the WireGuard protocol= is=0Aimplemented. The missing parts should not be too hard to add.=0A=0AO= nly Linux is supported, for the moment.=0A=0AThe implementation is quite f= ast =F0=9F=9A=80, although I haven't spent a lot of=0Aeffort in optimizati= on yet. It uses a fixed number of threads to=0Aprocess packets from UDP so= cket or TUN device (similar to the other=0AHaskell impl, nara), and uses f= ine-grained locking to exploit=0Aparallelism. I get 600Mbps+ to 800Mbps+ t= hroughput and about 0.5ms=0Alatency, between my Haswell Xeon-E3 desktop an= d a local KVM=0Ainstance. It should be able to get even faster with SO_REU= SEPORT=0Asockets and multi-queue TUN devices.=0A=0APlease review and test.= =0A=0ARegards,=0ASopium=0A=0A=0A= --Boundary_(ID_oQT6zZC7Rs1STO+ulc3FXw) Content-type: multipart/related; boundary="Boundary_(ID_QDZluIyx0aMLxcRtxK39PA)"; type="text/html" --Boundary_(ID_QDZluIyx0aMLxcRtxK39PA) Content-type: text/html; charset=utf-8 Content-transfer-encoding: quoted-printable
Hey folks,

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

Best regard= s,
Sascha

A= m 13. M=C3=A4rz 2017 um 08:04 schrieb sopium <sopium@mysterious.site>= ;:

Hi,

2017-03= -05 20:42 GMT+09:00 Sascha Grunert <saschagrunert@icloud.com>:
Hey folks,

I want to call for par= ticipation of the Rust userspace implementation of WireGuard. The template= for the initial implementation was this: http= s://www.wireguard.io/xplatform/ and can be found here: https://git.zx2c4.com/wireguard-rs/.

[......]
I have= got an initial working prototype of the WireGuard protocol in
Rust.
The code is at the `wg` branch of `TiTun`[1].

1. https://github.com/sopium/titun/tree/wg

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

Only Linux is sup= ported, for the moment.

The implementation is quite fast =F0=9F=9A=80= , 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 de= vice (similar to the other
Haskell impl, nara), and uses fine-grained l= ocking to exploit
parallelism. I get 600Mbps+ to 800Mbps+ throughput an= d about 0.5ms
latency, between my Haswell Xeon-E3 desktop and a local K= VM
instance. It should be able to get even faster with SO_REUSEPORT
= sockets and multi-queue TUN devices.

Please review and test.
Regards,
Sopium


= --Boundary_(ID_QDZluIyx0aMLxcRtxK39PA)-- --Boundary_(ID_oQT6zZC7Rs1STO+ulc3FXw)--