This commit deletes the legacy implementation that was still around under vpn/.
Practically all the functionality has been moved to the public pkg/tunnel package, which contains the public API now.
The test binary can now be found in the same path as before, cmd/minivpn, although the cli flags have changed. Behavior-wise, however, there are bits that I have not still ported (gvisor-based tun device). They will be ported on a per-need basis, but at least we're cleaning up the tree of the unused codebase for now.
I am also bumping go.mod and go.sum, minivpn now requires go 1.21. This dependency could probably be relaxed (the main component that is pulling 1.21 dep now is the library I'm using to get the exit gateway, and that could be easily ported to use 1.20 or lower, but in any case 1.20 is not officially supported anymore, so I guess it's fine to start depending on 1.21 at this point).
Checklist
[x] I have read the contribution guidelines
[x] Iff you changed code related to services, or inter-service communication, make sure you update the diagrams in ARCHITECTURE.md.
This commit deletes the legacy implementation that was still around under
vpn/
.Practically all the functionality has been moved to the public
pkg/tunnel
package, which contains the public API now.The test binary can now be found in the same path as before,
cmd/minivpn
, although the cli flags have changed. Behavior-wise, however, there are bits that I have not still ported (gvisor-based tun device). They will be ported on a per-need basis, but at least we're cleaning up the tree of the unused codebase for now.I am also bumping
go.mod
andgo.sum
,minivpn
now requires go 1.21. This dependency could probably be relaxed (the main component that is pulling 1.21 dep now is the library I'm using to get the exit gateway, and that could be easily ported to use 1.20 or lower, but in any case 1.20 is not officially supported anymore, so I guess it's fine to start depending on 1.21 at this point).Checklist
ARCHITECTURE.md
.