Roadmap
VPN Works is the VPN, rebuilt as an operating system: a kernel, drivers for each way out, and plugins as apps. Seven releases are out. What comes next is in the order it’s planned, without dates: each release ships when its tests pass, and not before.

Out Now
0.3.0, the platform. VPN Works rebuilt as one core with plugins. One vpnw binary in place of five; a WebAssembly plugin host with Observer, Advisor and Guard plugins, signed and sandboxed; Trace and Learn moved out of the core as built-in plugins. What moved where
0.4.0, WireGuard paths. A program goes through a WireGuard tunnel that vpnw runs itself: no root, no kernel module, no network interface. Names are looked up through the tunnel, the policy still checks every address, and the program never starts on a dead tunnel. WireGuard paths
0.4.1, fixes. The sandbox’s two IPv6 escape tests run on every push now, on a Linux machine that has IPv6: all 17 ways out are blocked. Recording the figures also caught a race in closing plugins, which is fixed. What 0.4.1 changed
0.5.0, Ledger. Two built-in plugins: an Observer that seals each run’s events into a hash-chained file as they happen, and an Advisor, run with vpnw verify, that names the line anyone changed and says when a run was cut short. Every plugin can now ask for a file of its own to append to. Ledger in 0.5.0
0.6.0, Lab. The fault kit every tunnel must pass before it ships, in the tests: a peer that goes silent, lost handshakes, the tunnel sent to an impostor, a slow path, and a DNS server that lies. The WireGuard path handles all 18 cases. Four fixes came out of it, among them a refusal of loopback and cloud metadata addresses through any tunnel. Lab in 0.6.0
0.7.0, Exit. vpnw exit, the server end of a path, on a machine with fixed addresses. Each client leaves from an address of its own, and every request is decided again at the exit with the client’s own policy, by the same code. Plugins run there too. Exit in 0.7.0
0.8.0, Tunnel plugins. A new kind of plugin hands the kernel WireGuard configs and says how long to keep each; the kernel still runs every tunnel, where every byte of traffic stays. The built-in rotate moves through a folder of configs, every so often and whenever one stops answering, and nothing ever goes around the tunnels. Tunnel plugins in 0.8.0
Next
Each release pauses for a look before the next one starts. The program that ran from 0.4.1 to 0.8.0 is complete, and what comes next is chosen after a look at 0.8.0. Tunnel plugins for particular VPN providers can follow rotate.
After That
Gateway mode. One policy for every device behind a machine, taking connections from the system’s routing instead of from proxy settings. This is also where VPN Works needs a second kind of enforcement, at the level of packets, so it can carry UDP as well as TCP.
Scope as an Advisor for gateway mode. Least-privilege rules learned per person from the gateway’s own traffic.
Open Questions
- Files. vpnw limits the network only. A sealed program can read whatever your user can read. A file-system layer would close that, and it’s not scheduled yet.
- Signed ledgers. The 0.2.0 Ledger signed its checkpoints and could prove one connection was in a record without showing the rest. That needs a key a plugin can use without being able to read it, which the plugin interface doesn’t offer yet.
- macOS sealing. On macOS, vpnw can route but not seal: a program that ignores proxy settings isn’t stopped. Linux has the kernel features that make sealing cheap; macOS needs another way.
Something you’d want on this list, or want sooner? Write.