Problem
VPN software crosses several difficult systems boundaries at once: virtual network adapters, packet framing, encryption, transport behavior, Windows routing, NAT, concurrency, user controls, and build reproducibility. The project makes those boundaries explicit and testable.
Architecture
The native client and server use Wintun and Winsock to move IP packets over encrypted TCP or UDP transports. Windows routing and NAT integration connect the tunnel to the host network, while a Direct3D/ImGui interface exposes configuration and runtime state without replacing the underlying service logic.
Engineering constraints
- Handle multiple clients without mixing packet state or connection lifecycle.
- Support encrypted TCP and UDP transport paths behind a consistent tunnel interface.
- Coordinate virtual-adapter, routing, NAT, and privilege-sensitive Windows behavior.
- Keep the GUI separate from packet-processing and connection-management concerns.
- Validate multiple cipher and transport combinations through integration testing.
Technologies
Outcome
TrueTunnel is a public example of hands-on C++ systems work: not only network algorithms, but the operating-system integration, lifecycle handling, controls, and repeatable testing needed to make them useful.