open source · AGPLv3

Secure transport anyone can verify.

rVPN is an open-source protocol that carries your traffic safely across the internet, indistinguishable from ordinary HTTPS, so it works even where VPNs are blocked.

We believe privacy should be proven, not promised. Every line is open to read, audit, and run yourself.

$ curl -fsSL https://assets.rvpn.org/install.sh | sudo bash
auto-detects your OS · verifies checksum · macOS, Linux, FreeBSD
// trusted properties, not promises
100%
open source
:443
looks like HTTPS
0
logs kept
Rust
memory-safe core
// how it works

Hidden in plain HTTPS.

A censor watching the wire sees ordinary web traffic on port 443. No tell-tale handshake, no blockable fingerprint. If they probe the server, it answers like a normal website.

What the network sees
TLS 1.3 · :443 · application/octet-stream indistinguishable
You
your device
encrypted · :443
rVPN node
HK2 · :443
exits clean
Open internet
the open web
Active probe? The node answers like an ordinary website: 200 OK. Nothing to confirm, nothing to block.
01
Forward secrecy

A Double Ratchet rekeys every message, so a stolen key never unlocks the past or the future.

02
Active-probe resistant

Probe the endpoint and it serves a real decoy site. Nothing to confirm, nothing to block.

03
Memory-safe in Rust

The core is written in Rust, so entire classes of vulnerability cannot occur.

// transport

Many flows.
One connection shape.

One TLS connection per flow means hundreds of parallel sessions under load: slow to establish, and a shape worth flagging. Pooled multiplexing carries every flow over a handful of long-lived connections, so the wire stays small and ordinary no matter how busy you are.

BEFORE · CONNECTION PER FLOW ×N handshakes
f1
f2
f3
f4
f5
f6
⋮
fN

Every flow pays a full TCP + TLS + WebSocket + X3DH handshake. A busy client holds hundreds of parallel TLS sessions to one server.

NOW · POOLED MULTIPLEX pool_size = 4
f1·f5
f2·f6
f3·f7
f4·fN

Flows share a small pool of long-lived connections. Credit-based flow control keeps bulk transfers from starving interactive ones, and reconnects resume TLS 1.3 tickets in a single round trip.

pool_size = 4 flow window = 256 KiB wire order = ratchet order reconnect = 1-RTT PSK
// verify, don't trust

Don't take our word for it.

Every claim on this page maps to code you can read. Clone the repo, check out a tag, and build the exact binary we ship. Reproducible by design.

Read the whitepaper →
$ git clone https://github.com/PDG-Global/rVPN-core
$ git checkout v1.4.0
$ cargo build --release --locked
✓ reproducible build verified
✓ sha256 9f3a…02da matches release
✓ signature valid · key 0xA13F
// open by default

Open source first.
Always.

rVPN is free and open under AGPLv3, and always will be. Development is fully funded by PDG Global Limited; sales of the iOS and Android apps, together with donations, contribute towards development costs. The code never closes.

github.com/rvpn
LICENSE
AGPLv3
copyleft, forever
LANGUAGE
Rust
memory-safe core
AUDIT
Reproducible
builds match releases
COMMUNITY
Self-host
run your own node
// every platform

Everywhere you are.

One protocol, every device. Native apps for phone and desktop, a command-line client for your servers, and the source code to port it anywhere we have not yet.

iOS Android macOS Linux FreeBSD CLI
6 platforms · one protocol · self-host any node
rVPN on Android, not connected
rVPN on iOS, protected
iOS
Android

Take it for a run.

Free, open source, and ready on every platform. The apps are on the stores and the source is on GitHub today.

Download for iOS All platforms