Skip to content

WHY-RERO/ReroVPN

Repository files navigation

RERO VPN

GitHub YouTube Instagram Website Website Website

Kotlin Compose Desktop Material3 JVM Gradle License

Next-generation, cross-platform desktop VPN application.

WireGuard® · OpenVPN · AES-256-GCM · Kill Switch · DNS Protection · Animated Globe UI

Windows · macOS · Linux — single codebase, native packages


Table of Contents


Features

Layer Technology Details
UI Framework Jetpack Compose Desktop 1.6.1 Declarative, GPU-accelerated rendering
Animated Globe Compose Canvas API Rotating 3D sphere, orbit rings, floating info chips
Particle Background Custom Canvas renderer Continuously animated particle system
VPN Protocol WireGuard® / OpenVPN / IKEv2 / RERO Custom User-selectable per session
Encryption AES-256-GCM · ChaCha20-Poly1305 · AES-128-GCM NSA-approved algorithms
Kill Switch Automatic internet cutoff All traffic blocked instantly when VPN drops
DNS Protection DNS over HTTPS + Leak Protection ISP can never see your queries
IPv6 Protection IPv6 traffic blocking Zero tolerance for real IP leakage
Split Tunneling Per-app routing Choose which apps go through the VPN
Live Statistics Coroutines-based poll — 900ms Download/upload speed, ping, connection time
Cross-Platform Windows EXE/MSI · macOS DMG · Linux AppImage Single codebase, native packages
No-Log Policy Zero logging User activity is never stored

Architecture

┌──────────────────────────────────────────────────────────────┐
│                      Main.kt — Entry Point                   │
│  Window(undecorated=true, 1280×820dp, minSize=960×640)       │
└────────────────────────────┬─────────────────────────────────┘
                             │
                             ▼
┌──────────────────────────────────────────────────────────────┐
│                    AppWindow (root composable)               │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  ParticleBackground   (Canvas — full-size layer)      │   │
│  └──────────────────────────────────────────────────────┘   │
│                                                              │
│  ┌──────────────┐                                           │
│  │  TitleBar    │  Draggable custom window bar             │
│  │  (draggable) │  Close · Minimize · Maximize             │
│  └──────────────┘                                           │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  NavBar                                               │   │
│  │  HOME · SERVERS · ABOUT · SETTINGS  |  clock · status │   │
│  └──────────────────────────────────────────────────────┘   │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  Crossfade(tween=220ms) — page transition animation  │   │
│  │                                                       │   │
│  │  ┌─────────────┐  ┌──────────────┐                   │   │
│  │  │ HomeScreen  │  │ ServersScreen│                   │   │
│  │  │  Globe +    │  │  Server grid │                   │   │
│  │  │  Controls   │  │  500+ · 50+  │                   │   │
│  │  └─────────────┘  └──────────────┘                   │   │
│  │  ┌─────────────┐  ┌──────────────┐                   │   │
│  │  │ AboutScreen │  │SettingsScreen│                   │   │
│  │  │  Team ·     │  │  Protocol    │                   │   │
│  │  │  Values ·   │  │  Security    │                   │   │
│  │  │  Tech       │  │  Privacy     │                   │   │
│  │  └─────────────┘  └──────────────┘                   │   │
│  └──────────────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────────────┘

State Management

VpnState (mutableStateOf — Compose reactivity)
    │
    ├── status: VpnStatus          DISCONNECTED → CONNECTING → CONNECTED → DISCONNECTING
    ├── selectedServer: ServerInfo  Active server (flag, city, protocol, pingMs)
    ├── currentPage: NavPage        HOME / SERVERS / ABOUT / SETTINGS
    │
    ├── downloadSpeed: Double       Coroutine poll — 900ms interval
    ├── uploadSpeed:   Double       Simulated ± random variance
    ├── currentPing:   Int          selectedServer.pingMs ± 4ms jitter
    ├── connectedSeconds: Int       1s timer coroutine
    │
    ├── killSwitch:     Boolean     toggle
    ├── dnsProtection:  Boolean     toggle
    ├── ipv6Protection: Boolean     toggle
    ├── splitTunneling: Boolean     toggle
    ├── autoConnect:    Boolean     toggle
    └── protocol:       String      WireGuard® / OpenVPN UDP / OpenVPN TCP / IKEv2 / RERO Custom

Directory Structure

ReroVPN/
├── src/
│   └── main/
│       ├── kotlin/com/rerovpn/
│       │   ├── Main.kt                 # Application entry point, Window configuration
│       │   ├── model/
│       │   │   └── VpnModel.kt         # ServerInfo, VpnState, VpnStatus, SERVERS list
│       │   └── ui/
│       │       ├── AppWindow.kt        # Root composable, page routing, live clock
│       │       ├── TitleBar.kt         # Custom frameless window bar (close/min/max)
│       │       ├── NavBar.kt           # Navigation bar + VPN status indicator + clock
│       │       ├── HomeScreen.kt       # Home — Globe + PowerButton + live statistics
│       │       ├── ServersScreen.kt    # Server list grid view
│       │       ├── SettingsScreen.kt   # Protocol · Security · Privacy settings
│       │       ├── AboutScreen.kt      # Features · Team · Technology badges
│       │       ├── GlobeCanvas.kt      # Animated 3D globe Canvas renderer
│       │       ├── ParticleBackground.kt # Continuous particle animation layer
│       │       ├── PageHeader.kt       # Shared page header component
│       │       ├── Components.kt       # PowerButton, StatTile, SignalBars, ReroSwitch
│       │       ├── SharedComponents.kt # SectionLabel, GlowDivider, StatsMegaRow
│       │       └── Theme.kt            # ReroColors palette + Material3 dark theme
│       └── resources/
│           └── assets/
│               ├── icon.ico            # Windows icon
│               └── icon.png            # Linux / general icon
│
├── build.gradle.kts                    # Gradle build configuration (Kotlin DSL)
├── settings.gradle.kts                 # Project name settings
├── gradlew / gradlew.bat               # Gradle wrapper scripts
├── SETUP.bat                           # Windows setup & build wizard
├── SETUP.sh                            # macOS/Linux setup script
└── JAR_SORUNU_COZUM.txt                # gradle-wrapper.jar troubleshooting guide

Installation

Prerequisites

  • JDK 17+ — download from adoptium.net
  • Gradle 8.5 — downloaded automatically via the wrapper, no separate install needed
  • Windows EXE/MSI only: WiX Toolset 3.x

Quick Setup (SETUP script)

Windows:

SETUP.bat

macOS / Linux:

chmod +x SETUP.sh && ./SETUP.sh

The script checks for Java, downloads Gradle dependencies, and presents a build menu.

Manual Setup

git clone https://github.com/WHY-RERO/ReroVPN.git
cd ReroVPN

Usage & Build

Development — Run

# Windows
gradlew.bat run

# macOS / Linux
./gradlew run

Packaging

Platform Command Output
Windows EXE gradlew.bat packageExe build/compose/binaries/main/exe/
Windows MSI gradlew.bat packageMsi build/compose/binaries/main/msi/
Portable EXE gradlew.bat createDistributable build/compose/binaries/main/app/
macOS DMG ./gradlew packageDmg build/compose/binaries/main/dmg/
Linux AppImage ./gradlew packageAppImage build/compose/binaries/main/app/

EXE/MSI: WiX Toolset must be installed. For a WiX-free portable build use createDistributable.

First build: Gradle downloads dependencies and a JVM runtime — expect ~10 minutes. Subsequent builds are much faster.


Screens

Home

┌─────────────────────────────────┬──────────────────────┐
│                                 │  // Connect          │
│   Animated 3D Globe             │                      │
│   ┌────────────────────┐        │   [ POWER BUTTON ]   │
│   │ Orbit Rings (3 layers)      │                      │
│   │  22s / 32s / 54s   │        │  // Live Stats       │
│   │                    │        │  Download  Upload    │
│   │  ● Frankfurt 12ms  │        │  Ping      Duration  │
│   │  ● New York 94ms   │        │                      │
│   │  ● Tokyo 138ms     │        │  // Select Server    │
│   └────────────────────┘        │  (first 4 servers)   │
│                                 │                      │
└─────────────────────────────────┴──────────────────────┘
  • Power Button: One-click connect/disconnect. 2.4s connecting animation, 1.2s disconnecting animation.
  • Live statistics: Updated every 900ms after connection is established.
  • Orbit rings: 3 independent rings rotating at different speeds (22 000ms / 32 000ms / 54 000ms).
  • Globe chips: Frankfurt · New York · Tokyo — floating animated info labels.

Servers

  • 500+ servers · 50+ countries · 10Gbps bandwidth · 99.9% uptime
  • All servers displayed in a 3-column grid
  • Ping color coding: green (<50ms) · cyan (50–99ms) · orange (100ms+)
  • Signal bar indicator with hover and selection animations

Settings

Section Options
Connection Protocol WireGuard® · OpenVPN UDP · OpenVPN TCP · IKEv2/IPsec · RERO Custom
Encryption AES-256-GCM · ChaCha20-Poly1305 · AES-128-GCM
Security Kill Switch · DNS Leak Protection · IPv6 Protection · Split Tunneling
Privacy No-Log Policy (always active) · Auto Connect
About Version · Protocol · Platform · Java version

About

  • 2M+ active users · 500+ servers · 50+ countries · AES-256 encryption
  • 6 core value cards: Zero Logs · Ultra Speed · Military Encryption · Kill Switch · DNS Protection · Split Tunneling
  • Team cards: 3-person founding team
  • Technology badges: WireGuard® · OpenVPN 3.0 · AES-256-GCM · RSA-4096 · ChaCha20-Poly1305 · DNS over HTTPS · Perfect Forward Secrecy · IPv6 Leak Protection

Security & Protocols

VPN Protocols

Protocol Speed Security Recommended For
WireGuard® Fastest Very high Daily use (default)
OpenVPN UDP Fast High General purpose
OpenVPN TCP Moderate High Firewalled networks
IKEv2 / IPsec Fast High Mobile connections
RERO Custom High Maximum RERO-optimized infrastructure

Encryption Stack

Data Packet
    │
    ▼
AES-256-GCM  (or ChaCha20-Poly1305 / AES-128-GCM)
    │   Symmetric encryption — unique key per packet
    ▼
RSA-4096
    │   Key exchange
    ▼
Perfect Forward Secrecy
    │   Unique session key per connection
    ▼
DNS over HTTPS
    │   DNS queries routed through encrypted tunnel
    ▼
Destination Server

Security Features

  • Kill Switch: The moment the VPN tunnel drops, all internet traffic is blocked. Your IP address is never exposed.
  • DNS Leak Protection: DNS queries are routed through the encrypted VPN tunnel instead of your ISP's servers.
  • IPv6 Protection: IPv6 traffic is fully blocked to prevent real IP leakage through IPv6 channels.
  • Split Tunneling: Choose which applications route through the VPN; others connect directly.
  • No-Log Policy: IP address, connection timestamps, visited sites, and downloaded content are never recorded.

Server Network

Flag Country City Ping Protocol
🇹🇷 Turkey Istanbul 12 ms WireGuard®
🇩🇪 Germany Frankfurt 28 ms WireGuard®
🇳🇱 Netherlands Amsterdam 32 ms WireGuard®
🇬🇧 United Kingdom London 38 ms WireGuard®
🇫🇷 France Paris 34 ms WireGuard®
🇨🇭 Switzerland Zurich 30 ms WireGuard®
🇸🇪 Sweden Stockholm 44 ms WireGuard®
🇺🇸 United States New York 95 ms OpenVPN
🇨🇦 Canada Toronto 108 ms OpenVPN
🇯🇵 Japan Tokyo 142 ms WireGuard®
🇸🇬 Singapore Central 118 ms WireGuard®
🇦🇺 Australia Sydney 165 ms WireGuard®

Displayed ping values are base values. Live values update with ±4ms jitter during an active connection.


Design System

Color Palette — ReroColors

Token HEX Usage
Background #020810 Window background
Surface #060F20 Cards, panel backgrounds
SurfaceVariant #0A1628 Hover states
Cyan #00E5FF Accent, connection, active state
Blue #1A6CFF Secondary accent
Teal #00FFD0 Duration indicator
Green #00FF9D Connected state, low ping
Orange #FFB300 Connecting / disconnecting
Red #FF2D55 Error, warning
TextPrimary #CCE8FF Primary text
TextSecondary #6A90AA Secondary text
TextDim #3A6080 Dim text, labels
Border #1E00E5FF Borders (~12% alpha)

Animations

Component Duration Easing
Page transition (Crossfade) 220ms Default
Color transitions (hover/select) 200ms Default
VPN status color 400ms tween
Orbit ring 1 22 000ms LinearEasing
Orbit ring 2 32 000ms LinearEasing (reverse)
Orbit ring 3 54 000ms LinearEasing
Globe chip float 3 800ms FastOutSlowInEasing

Requirements

Software

  • JDK 17+ (required for build and runtime)
  • Gradle 8.5 (downloaded automatically via wrapper)
  • WiX Toolset 3.x for Windows EXE/MSI packaging
  • Internet connection for first-time Gradle dependency download (~300MB cache)

Supported Operating Systems

Platform Format Minimum
Windows EXE · MSI · Portable Windows 10 64-bit
macOS DMG macOS 11 Big Sur
Linux AppImage glibc 2.17+

Window Dimensions

  • Default: 1280 × 820 dp
  • Minimum: 960 × 640 px
  • Full-screen: supported

Author

RERO

Software Developer · AI Researcher

Platform Link
GitHub @WHY-RERO
YouTube @why_reronuzzz
Instagram @why_reronuzzz
RERO AI reroai.com.tr
Axon Data Relations axondatarel.org
R1 r1.net.tr

This project was designed and built from scratch by RERO.


License

Copyright (c) 2024 RERO — All Rights Reserved.

This software and all associated source code, assets, and documentation
("Software") are the exclusive property of RERO.

The following actions are STRICTLY PROHIBITED without prior written
permission from the owner:

  - Copying, reproducing, or redistributing the Software or any part of it
  - Using the Software for any commercial or non-commercial purpose
  - Modifying, refactoring, or creating derivative works
  - Sublicensing, selling, renting, or transferring the Software
  - Integrating the Software into any other system, product, or service
  - Reverse engineering, decompiling, or disassembling the Software
  - Removing or altering this license notice or copyright attribution

THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.
THE AUTHOR SHALL NOT BE LIABLE FOR ANY DAMAGES ARISING FROM ITS USE.

Contact for licensing or collaboration:
  GitHub : https://github.com/WHY-RERO
  Web    : https://reroai.com.tr

See LICENSE for the full license text.

About

Secure, fast, and lightweight VPN solution with privacy-focused architecture and modern encryption.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors