
Proton VPN has developed a new Rust-based client architecture, internally called ProTUN, to provide a common WireGuard implementation across its desktop and mobile applications and give its engineers greater control over anti-censorship features.
Proton engineer Antonio Cesarano said the company created the new framework after encountering limitations in integration, debugging, and stability with wireguard-go, the official userspace WireGuard implementation currently used by Proton VPN.
At the center of the new architecture is libpvpnclient, a standalone WireGuard implementation written in Rust. Proton says it reused cryptographic code from Cloudflare's open-source BoringTun project but designed the surrounding VPN architecture itself.
Unlike wireguard-go, libpvpnclient is intended to act as a platform-independent core that can be integrated into applications written in languages such as Kotlin and Swift. ProTUN is the operating-system-specific wrapper around this library.
The shared implementation should make it easier for Proton engineers to reproduce networking problems, test edge cases, and deploy fixes across platforms without maintaining substantially different VPN behavior for each operating system.
ProTUN also works with LocalAgent, Proton's internal control channel for functions including certificate-based authentication. LocalAgent has also been rewritten in Rust.
The new VPN engine is currently available through Proton VPN's early-access builds on Windows, Android, iOS, iPadOS, and the Linux GUI application. Its introduction also enables features that were previously unavailable on some platforms, including Proton's advanced kill switch on iOS and its censorship-resistant Stealth protocol on Linux.
Proton is separately developing a second component, codenamed muon, focused on the connection that occurs before a VPN tunnel is established.
VPN applications normally need to contact their provider's API to obtain configuration and connection information. Those requests can themselves be blocked using techniques such as DNS filtering or Server Name Indication (SNI) inspection, preventing users from reaching the VPN service in the first place.
Muon is designed to securely route these initial requests to Proton's API and eventually replace the company's existing alternative-routing mechanism. Proton says it intends to deploy the technology across its other applications as well as Proton VPN.
Together, libpvpnclient, ProTUN, LocalAgent, and muon provide Proton with a VPN stack that it can modify independently of wireguard-go. Beyond simplifying cross-platform development, the company says the architecture could support future work on connection reliability, power consumption, censorship resistance, and post-quantum cryptography.
For users, the immediate changes are largely architectural. Proton is rebuilding the client software around WireGuard so that networking and anti-censorship mechanisms can be developed and deployed more consistently across its applications.







Leave a Reply