Files
netrunner-app/README.md
T
Kirill c852315d34 Add decoy SNI plumbing, bundle wintun.dll, fix flag icons, add docs
- Прокидываем sni (decoy-хост) по обновлённому UDL через весь стек:
  guest-js -> Tauri-команда -> desktop/mobile -> Kotlin spawnSession.
  Список серверов пока статичный (backend еще не отдает sni), но логика
  похода в реальный /api/v1/nodes оставлена под флагом на будущее.
- Бандлим wintun.dll в Windows-инсталлятор через bundle.resources в
  tauri.windows.conf.json - раньше он копировался только для
  локального cargo run/tauri dev, но не попадал в NSIS/MSI.
- Чиним падение мобильной сборки: гитигнорённые UniFFI Kotlin-биндинги
  отстали от обновленного UDL (не хватало параметра sni).
- Флаги стран - локальные SVG вместо react-country-flag в CDN-режиме:
  тот бился об CSP и не грузился офлайн.
- Добавляем дерево README.md по структуре проекта и точечные
  комментарии в неочевидных местах кода.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-02 19:29:29 +07:00

3.2 KiB
Raw Blame History

Netrunner VPN

Клиентское приложение VPN с stealth-протоколом (маскировка ClientHello под decoy-домен через SNI). Гибридный стек: React-фронтенд + Rust-бэкенд на Tauri 2, нативный VPN-движок подключается как приватный крейт по FFI (UniFFI).

Структура репозитория

Путь Что внутри Документация
src/ React/TypeScript UI (Vite) src/README.md
src-tauri/ Rust-оболочка Tauri + нативный VPN-плагин src-tauri/README.md

Каждая поддиректория с самостоятельной логикой имеет свой README.md — смотри дерево докам по ссылкам выше, дальше они ведут друг к другу.

Технологии

  • Frontend: React 19, TypeScript, Vite, Zustand (стейт), react-i18next (RU/EN), Tailwind + shadcn/radix-ui, framer-motion.
  • Backend: Rust, Tauri 2 (десктоп: Windows/Linux/macOS, мобильный: Android/iOS).
  • VPN-движок: приватный крейт netrunner_client (репозиторий netrunner-core, отдельно от этого проекта) — подключается через UniFFI: напрямую из Rust на десктопе, через сгенерированные Kotlin-биндинги на Android.

Сборка

Команды из Makefile:

make dev-linux          # dev-сборка + запуск с cap_net_admin
make dev-android        # gradle clean + tauri android dev
make build-windows      # инсталлятор под Windows (NSIS/MSI, с wintun.dll)
make build-android-arm64
make install            # adb install собранного APK

Фронтенд отдельно: pnpm dev / pnpm build (см. package.json).

Важные нюансы

  • Windows: wintun.dll бандлится в инсталлятор через src-tauri/tauri.windows.conf.json (bundle.resources) — см. src-tauri/README.md.
  • Android: UniFFI-биндинги и .so-библиотеки VPN-движка — это гитигнорённые build-артефакты, которые нужно вручную регенерировать при изменении UDL в netrunner-core. Забытая регенерация — частая причина падения мобильной сборки. Подробности: src-tauri/src/plugins/vpn-plugin/android/README.md.
  • Список серверов пока захардкожен на фронте (см. src/store/README.md), потому что бэкенд /api/v1/nodes ещё не отдаёт поле sni (decoy-хост) — логика подключения к реальному API уже написана и просто выключена флагом.