Related: Wireguard is a new VPN for linux in 4k lines of C <a href="https://www.wireguard.com/" rel="nofollow">https://www.wireguard.com/</a><p>the model of wireguard has been proven correct by formal methods. Builds on modern crypto, and they kept code short for auditing purposes.
The project structure is fighting againts norms. The author should not have src checked in. They should have their package as the root so it is "go get-able" and does not require the user to alter their GOPATH. To ensure that the proper dependency versions are present, they should vendor the dependencies. I would have opened an issue on GitHub for them, but I am not signed in currently. Cheers on releasing a neat tool.<p>EDIT: got off my mobile and to a laptop and submitted <a href="https://github.com/twitchyliquid64/subnet/issues/3" rel="nofollow">https://github.com/twitchyliquid64/subnet/issues/3</a>.
Nice, I'll try it out once I get home.<p>A couple of question:<p>- What is the throughput once you fixed the issues ?<p>- If you were to implement a client for mobile (iOS, Android), how would you go about it ? (Just theoretically, I understand it's a personal project)<p>I'm using openvpn on a cloud server and one of the big advantages is the availability of mobile client apps.
sshuttle is another great tool with a similar use case. One advantage is that it doesn't require any server setup at all, as long as you have ssh access.<p><a href="https://github.com/sshuttle/sshuttle" rel="nofollow">https://github.com/sshuttle/sshuttle</a>
In other comments the author seems to already be aware, but for anyone wondering why TCP over TCP is less than ideal, this is a good read: <a href="http://sites.inka.de/bigred/devel/tcp-tcp.html" rel="nofollow">http://sites.inka.de/bigred/devel/tcp-tcp.html</a>
Does this work on Windows? I see the TODO item "Get working on OSX", but if this project could bring x-compatibility on the big 3 platforms (thanks Go!), that could really set it apart.
Upon reading the title I wondered "would anyone ever create a VPN client that <i>doesn't</i> use encryption?" and thought, with the "2k lines" as additional evidence, that it was the <i>source code</i> which was somehow encrypted/obfuscated to e.g. prevent censorship...<p>I was also expecting to see a single file at that line count, but then again I'm not really familiar with Go. Is this style of "many tiny files in multiple nested directories" common/expected for Go? I know it's rather common in many other languages, but also not what I expect when I see "Simple" or explicit mention of a low line count.