Repository navigation
OpenRad 2.0.0 — Monorepo with Android and Python clients
OpenRad 2.0.0 turns the repository into a monorepo: the Android client (beta) and the Python SDK join the Rust desktop and CLI on one shared wire format, fixture set and message catalog.
- Android (beta): Kotlin port with TCP plus Wi-Fi-only UDP and a packet path about 1.5x faster with byte-identical wire output. This release ships a signed APK (
com.openrad.mobile, Android 8.0+). Fixes a TUN reader thread leak on interface rebuilds and a rename race that could stop the VPN service underneath the new session. - Python: stdlib-only SDK, installable with
pip install "git+https://github.com/gringoestrangeiro/openrad.git@v2.0.0#subdirectory=clients/python". - Windows installer: asks before touching a running OpenRad, stops it gracefully with its own bundled
openrad stop(never an executable already in the install folder), closes the desktop window and offers Retry/Cancel while a file is still in use. It never force-terminates processes. Integrity failures name the mismatching file. - UDP: truncated or overflowing datagrams return errors; ENET commands shorter than their 4-byte header are rejected before transmission. New errors are translated in all four languages.
- Branding and Linux launcher: one canonical logo for window, executable and installer icons. The Linux archive adds
org.openrad.desktop.desktop(matching the window app_id) andinstall-desktop-entry.shfor a per-user menu entry.
Downloads: Linux archive; offline Windows installer (standalone EXE or documentation ZIP); portable Windows ZIP for an already installed dedicated TAP adapter; Android APK; and SHA256SUMS for all distribution files.
Upgrade: Stop the old shared service with openrad stop and close the desktop before replacing binaries. Keep CLI and desktop from this release together. Existing identities, memberships and saved preferences are retained. On Android, the earlier debug build (com.openrad.mobile.debug) is a separate app; uninstall it after installing this one.
Validation: 330 default Linux workspace tests pass (8 optional ignored), formatting and Linux/Windows Clippy pass with warnings denied, every Windows test executable compiles, Android JVM unit tests, Python suites and scripts/check-sync.py pass, and a Wine installer-flow regression covers stopping a running install through the bundled binary. Linux uses the Debian 12 / Rust 1.95 builder; the CLI requires glibc 2.34+, desktop glibc 2.35+.
Windows remains experimental. Cross-compilation, synthetic rendering and Wine do not establish native TAP/UAC or real Radmin interoperability. Windows applications are unsigned; the bundled TAP driver is the unchanged upstream signed package. The Android lifecycle fixes were not exercised on a device.