mozilla-vpn-client icon indicating copy to clipboard operation
mozilla-vpn-client copied to clipboard

Experiment: Update MacOS daemon to use boringtun

Open oskirby opened this issue 7 months ago • 0 comments

Description

This is a bit of an experiment to try out Wireguard tunneling on MacOS using boringtun, which seems to have a couple of benefits:

  • It's a rust crate, meaning we can drop the use of Golang entirely for MacOS.
  • The daemon can become a monolithic binary as the wireguard-go tool no longer exists. Allowing daemon management via SMJobBless (future work).
  • Multihop happens entirely in-process, so we can simplify the routing table management.
  • Better MTU handling.

As a downside. Packet encryption and handling is all done within the Qt event loop, which effectively makes it single-threaded. Potentially impacting network throughput.

Reference

i.e Jira or Github issue URL

Checklist

  • [ ] My code follows the style guidelines for this project
  • [ ] I have not added any packages that contain high risk or unknown licenses (GPL, LGPL, MPL, etc. consult with DevOps if in question)
  • [ ] I have performed a self review of my own code
  • [ ] I have commented my code PARTICULARLY in hard to understand areas
  • [ ] I have added thorough tests where needed

oskirby avatar Apr 28 '25 18:04 oskirby