47 points wh33zle 3 hours ago 5 comments

temp0826 2 hours ago | parent

Mullvad spun their own implementation off of boringtun as well (called gotatun[0])

[0] https://github.com/mullvad/gotatun

monocasa 1 hour ago | parent

Sweet, this is basically how I design my protocol implementations in rust as well.

Way more testable, the bulk can be shared between async and blocking IO, it's a lot easier to completely ban unsafe in your dependencies (excepting std and core), etc.

asdf88990 1 hour ago | parent

From their website about their product:

> Hardware does the heavy lifting.

> Your operating system and network card take over the repetitive jobs whenever they can. Your CPU gets room to breathe, and your battery stays full longer.

Where does this operating system run? Where does the power come from to run it if not battery?

Pure rubbish ai slop.

While the software might actually be ok upon inspection but this kind of ai slop nonsense copy doesn’t inspire confidence in using their software considering how security critical the vpn is.

lakeviewterrace 39 minutes ago | parent

WireGuard implementations that are not Jason's reference implementation are stupid and an explicit invitation for issues.

I will die on this hill.

WG is like 2k LOC why the fuck do we need 30 different versions? Audit what you have.

wh33zle 10 minutes ago | parent

You can't use the Linux kernel implementation as soon as you want to be cross platform and the only userspace implementation is in Go which is awkward to FFI into from Rust.

I agree with your point. Use what is out there. We did that by using Cloudflare's boringtun for a long time. But it has limitations that eventually we could no longer work around if we wanted good compile-time safety and performance.