Open source · written in Rust

Your own VPN — privacy on your terms

Qeli is a full VPN for your own server: all device traffic goes through an encrypted channel via your own server, with no middlemen and no subscriptions. Modern cryptography and metadata privacy.

  • A real VPN, not a proxy
  • Real TLS 1.3 · modern stack
  • On your own server, no tracking
  • Post-quantum encryption of the tunnel by default
Qeli app — active VPN connection
1.77
Gbps · mean across five fast TCP profiles
0
Platforms with builds
IPv4 + IPv6
Full dual stack inside the tunnel
Open source
Source code and development on GitHub
0.8.1 · released 10 September

Qeli 0.8.1: faster UDP, stronger roaming and routed IPv6

The released 0.8.1 beta consolidates the 0.8 network architecture: it removes a measured UDP bottleneck, improves mobile recovery, adds a safe NDP proxy and makes desktop routing stricter.

01

UDP batching without extra delay

Linux and Android receive and send ready datagrams in batches of up to 32. A same-window A/B on the two-core lab reached 694.7 Mbit/s upload and 697.5 Mbit/s download; this is a specific test result, not a promise for every device.

02

Roaming waits for a usable network, not a timer

Android and iOS do not spend reconnect backoff without Wi-Fi or cellular and resume as soon as the carrier returns. Android preserves the fail-closed TUN for an unchanged plan, while multipath no longer remaps healthy flows.

03

Session-aware IPv6 NDP proxy

In routed mode Qeli can answer upstream Neighbor Solicitations only for IPv6 addresses and subnets owned by live sessions. It is off by default; auto/required are only for provider on-link layouts.

04

Strict route_file, desktop and backup

Windows/macOS accept repeatable CIDR and OpenVPN route lines with a 250,000-route bound and stop on errors. Per-app, macOS cleanup, firewall transactions and backup validation are also hardened.

Status: 0.8.1 was released as a beta on 10 September 2026. The set contains 17 payload files plus SHA256SUMS for Linux, Windows, macOS, Android, OpenWrt and Keenetic. It passed 1,041 Rust tests and 20 mandatory automated IPv6/roaming cases. Qeli still has no stable release; the first stable line is planned as 1.0.

About

Why Qeli

An ordinary commercial VPN routes your traffic through someone else's servers. Qeli is built for those who want to keep privacy and the whole infrastructure under their own control — on their own server.

The problem

Off-the-shelf commercial VPNs route all your traffic through someone else's servers — you don't know who owns the infrastructure, whether logs are kept, or who they're shared with. Your credentials, history and metadata end up with a third-party service.

Qeli's answer

Qeli runs on your own server: keys, traffic and logs stay with you, with no middlemen and no subscriptions. Modern cryptography (X25519, ChaCha20-Poly1305), metadata privacy, and in reality-tls mode — genuine TLS 1.3.

A real VPN, not a proxy

VLESS, V2Ray, Shadowsocks and most popular network tunnels are proxies: they only route traffic from apps that are specially configured. Qeli creates a real network tunnel and protects the entire device.

Proxy VLESS · V2Ray · Shadowsocks · Xray
  • Works only for apps configured to use the proxy
  • Every app has to be configured separately
  • Some traffic — DNS, system processes, third-party apps — bypasses it
  • Usually SOCKS/HTTP — for a browser and a couple of apps
  • If an app can't use a proxy, its traffic leaks out directly
A real VPN Qeli
  • Creates a network tunnel at the whole-device level
  • All traffic goes through the VPN automatically, with no per-app setup
  • Works for any app or game — even those that know nothing about proxies
  • Unified routes and DNS under control — with a full tunnel and kill-switch nothing goes around it
  • Route all traffic through the tunnel, or just selected subnets
What this means in practice: set it up once and the whole device's internet is protected: browser, messengers, games, system updates. No need to configure a proxy in every app or make sure no app is left unprotected.
Features

What Qeli is made of and what it does

First, the architecture: what Qeli is built from and why it's self-contained. Then, what it does for your security and connection stability.

Multiple transport modes

Several transport modes are built into the protocol itself, no third-party tools needed. The flagship one is reality-tls (real TLS 1.3); the rest switch with a single setting.

reality-tls · flagshipTLS formatWebSocketplainQUIC

Several profiles at once

TCP, UDP and REALITY at once in a single service — each with its own key, its own users and separate access.

Post-quantum encryption

Tunnel keys are derived from a hybrid of X25519 + ML-KEM-768 (post-quantum) — the key exchange is designed to resist a future quantum computer under current cryptographic assumptions. Used in every mode except plain. ChaCha20-Poly1305 encryption, no exposed counter in packets.

Built-in web panel

Full control from the browser: all profile settings, users, routes and server-key rotation — no SSH or file editing. Built-in HTTPS and an IP allowlist let you expose the panel safely without nginx; connection links and QR codes, a Russian/English interface.

Routing and joining networks

A real L3 VPN: reach the LAN behind the server and join whole subnets and sites into a single fabric. A proxy can't do this — it only forwards individual apps' traffic.

Network-joining scenarios →
Transport modes

One protocol — six transport modes

The mode determines the traffic shape and is configured by a matching pair of profile and client settings. The installer deploys reality-tls by default; the built-in config default is fake-tls. Other modes suit trusted networks, compatibility and fallback channels.

0.8.0 benchmark · clearly explained

What the full dual-stack test showed

Qeli does not have one speed for every use case: fast TCP, more processing-intensive TCP and native UDP profiles solve different problems. The practical reference and the composition of the overall result are therefore shown separately.

Reference for fast TCP profiles
1.77 Gbps

The mean of five profiles, not one best run

Use this figure when assessing the throughput of Qeli's fast TCP line. It combines upload and download over both IPv4 and IPv6.

5 TCP profiles IPv4 + IPv6 upload + download
How the figures relate

Why 1.77 and 1.22 Gbps are both correct

They answer different questions. 1.77 Gbps describes only the fast TCP group, while 1.22 Gbps is the mean across all twelve heterogeneous profiles.

5 fast TCP 1767 Mbps
3 processing-heavy TCP 1274 Mbps
4 native UDP 496 Mbps
(5 × 1767 + 3 × 1274 + 4 × 496) ÷ 12
mean across all 12 profiles1220 Mbps

The aggregate 1220 Mbps describes the complete line, but it is not the expected speed of any one selected profile.

Recordizeractive in every tested Qeli profile
IPv4 + IPv6both address families tested independently
3 × 4three repeats and four TCP directions

This is lab throughput, not a speed promise for every VPS. A real connection depends on routing, CPU, provider, loss and the selected transport.

All 12 profiles and methodology →
Practical choice

Speed is only one of three characteristics

Do not choose a transport mode by the longest benchmark bar alone. Throughput, masking level and the behavior of the actual network all matter.

01

Throughput

Compare profiles within the same class. TCP and UDP are measured differently and target different network conditions.

02

Traffic masking

Unmasked modes reveal the testbed ceiling but are not direct competitors to modes that reshape the connection's external profile.

03

Network behavior

Loss, mobile NAT, UDP availability and Wi-Fi/cellular changes can matter more than peak laboratory throughput.

Under the hood

Want to verify the details?

The full technical breakdown: the handshake, all six transport modes, cryptography, measured benchmarks and the comparison matrix.

How Qeli works →
Clients

Six platforms have builds; iOS is feature-complete but unpublished

Every client is wire-compatible with the server and sends the same real TLS 1.3 (reality-tls) through the shared realtls engine. A link or QR code carries the connection parameters (server, mode, key) in one tap; local settings — routes, DNS, MTU, kill-switch — are configured in the client itself.

Linux — server and client

Rust

  • The network tunnel is built into the program
  • Server and client in a single program
  • Runs as a service, a .deb package or a multi-arch Docker image
  • Commands to manage keys and add clients

Windows

C# · .NET

  • Built-in network driver, no separate install needed
  • Runs as a Windows service — even before sign-in
  • Tray icon, notifications, system theme, Russian and English
  • A single file: 77 MB with .NET bundled, or 11 MB if .NET is already installed

Android

Kotlin

  • Works over TCP and UDP
  • Import by link and a QR scanner
  • All transport modes; all traffic through the VPN by default
  • Download and upload speed indicator
  • Seamless reconnect on network change — Wi-Fi ↔ mobile data

iOS not published

Swift

  • NetworkExtension (Packet Tunnel Provider)
  • Import by link and QR code
  • All transport modes
  • Builds and passes unit tests in CI; not yet tested on a device

Keenetic

Rust · KeeneticOS

  • Router-level VPN — the whole home, no setup on each device
  • A KeeneticOS package, mipsel and aarch64 architectures
  • All transport modes
  • Tested on real Keenetic hardware and verified as a working client-only router VPN

OpenWrt

Rust · procd / UCI / LuCI

  • Router-level VPN — the whole home through one gateway
  • Native package: a procd service, UCI config and a LuCI page
  • Firewall zone (fw4) with NAT for the home network
  • Builds for aarch64, armv7, mipsel and x86_64
  • Tested on real OpenWrt hardware and verified as a working client-only router VPN
Open source

The project on GitHub

All the code is open — the protocol, server and clients for Linux, Windows, macOS, Android, iOS and routers. Study it, build it yourself, report issues and suggest improvements.

A full self-host VPN with its own network protocol and private transport — HTTPS, WebSocket, QUIC-shaped UDP and reality-tls.

vpnrustprivacyself-hostedtunreality
Rust AGPL-3.0 updated today
$ git clone https://github.com/litvinovtd/qeli.git