Over the past few months, Proton VPN has been working on Proton protocols, a new client‑side VPN protocol codebase. Known internally by the codename ProTUN, this new code architecture is written in Rust. Although we forked cryptography code from Cloudflare’s BoringTun(yeni pencere) project, the completely redesigned architecture is Proton’s.

Why we need a new VPN core

WireGuard® is a state-of-the-art VPN protocol that is as secure as OpenVPN but faster and more powerful. This is why we’re starting to remove OpenVPN support from our official apps, to focus instead on WireGuard.

However, our apps currently use the official wireguard-go implementation of WireGuard. And it’s a great implementation, with an elegantly minimal design that makes it fast, secure, and easier to audit than traditional VPN protocols.

However, wireguard-go doesn’t integrate well with the languages we use natively to develop Proton VPN on the multiple platforms that we support (such as Kotlin on Android and Swift on iOS). This slows development, complicates debugging, and introduces stability challenges.

Proton protocols solves these problems.

Proton protocols is a new client-side VPN framework based on WireGuard. Because it’s written in Rust and designed as a shared, extensible core, ProTUN can be consistently deployed across platforms and adapted to different network environments. This will let us diagnose issues faster, improve stability, and build advanced functionality directly into the VPN stack.

Most importantly, Proton protocols gives us the flexibility to respond quickly to censorship and network interference, which is an area where we expect the biggest long-term gains.

Under the hood

Encrypting traffic with a new WireGuard core

At the heart of the Proton protocols project is libpvpnclient, a clean, standalone implementation of the WireGuard protocol written in Rust. Its job is simple but critical: to encrypt your internet traffic and keep your connection secure.

What’s different from wireguard-go is how it’s built. Whereas wireguard-go is a simple WireGuard client, libpvpnclient is an entire new framework onto which we can develop advanced new features and functionalities.

And instead of being tightly bound to a specific operating system, libpvpnclient is designed as a pure, platform-independent core. This allows us to reuse the same high-quality implementation everywhere — on desktop, mobile, and beyond. This separation makes a big difference behind the scenes. It lets us:

  • Test and debug complex edge cases in controlled, repeatable environments
  • Roll out improvements faster and more consistently across platforms
  • Experiment with new techniques to resist censorship and traffic blocking

For you, this translates into faster updates, fewer platform-specific issues, and a VPN that adapts more quickly as network conditions and censorship methods change. ProTUN itself is our name for the wrapper around libpvpnclient that adapts the Rust-based library to each operating system that we support.

It works hand-in-hand with LocalAgent. This is our in-house control channel that allows us to implement certificate-based authentication, and which we’ve also just streamlined and rewritten in Rust.

This new VPN core is available to test-run now as a beta (early access) feature on the following platforms:

Making it easier to reach Proton VPN servers

We’re also working on phase two of Proton protocols. Codenamed muon, this is a flexible networking layer that safely connects our apps to Proton’s VPN API, even in situations where the Proton API is itself being censored.

Before a VPN can protect your traffic, it has to connect safely in the first place to the Proton API. And that’s becoming increasingly difficult. In some countries and networks, API connections are blocked or monitored at the DNS level or identified by inspecting the server names (a technique known as SNI snooping).

To address this, we’re building muon, a new gateway between our apps and Proton’s API. Again written in Rust for safety and performance, muon handles the very first network requests your app makes, and can then route them securely through to Proton VPN’s WireGuard protocol (in the long term, this functionality will replace our existing alternative routing(yeni pencere) anti-censorship solution).

In practical terms, this means that from the moment you open the Proton VPN app in a country where access is known to be censored, your communication to the Proton API will already be protected (even before a system-level VPN connection is fully established). And in restrictive countries, your ISP won’t even know that you’re connecting to Proton APIs.

This protection will be automatic and invisible to you, and means that you’re more likely to get a working connection in censored countries. muon is so useful for defeating censorship, in fact, that we’re going to use it on all Proton apps (not just VPN), giving you built‑in censorship protection across our ecosystem from the get-go. We’ll be rolling it out soon, so watch this space.

A solid foundation for what comes next

libpvpnclient (with the Proton protocols wrapper) and muon together form a new platform that gives our engineers far more flexibility. This allows us to experiment safely with improvements in connection stability, battery usage, and resilience, and prepares the groundwork for future technologies, like stronger anti-censorship techniques and post-quantum cryptography.

We see this as a major step forward in making the internet more accessible, reliable, and private for everyone. And this is just the beginning. We’re excited to see where this new foundation takes Proton VPN in 2026 and beyond.

“WireGuard” is a registered trademark(yeni pencere) of Jason A. Donenfeld.