Wolfram

0
README.md

Wolfram

Wolfram — нативный VPN-клиент для iPhone на Swift с Packet Tunnel Extension и backend-core на базе sing-box.

Цели проекта

Проект реализует стабильный и расширяемый VPN-клиент с опорой на системные механизмы iOS:

  • контейнерное приложение (
    Wolfram
    )
  • Packet Tunnel Extension (
    WolframPacketTunnel
    )
  • backend-core (
    Libbox.xcframework
    / sing-box)

Ключевая идея: бизнес-логика и модель данных остаются backend-agnostic, а extension остается тонким и отвечает только за запуск туннеля и обмен состоянием.

Поддерживаемые протоколы

  • VLESS (+ Reality)
  • VMess
  • Trojan
  • Shadowsocks
  • SOCKS
  • Hysteria2

Функциональность

  • Подключение/отключение VPN с управлением выбранным профилем
  • Импорт конфигураций по ссылкам и из подписок
  • Полноценное управление источниками подписок (создание, редактирование, удаление, скрытый и шифрованный режимы)
  • Правила маршрутизации: сценарии + расширенный редактор (
    geoip
    ,
    geosite
    ,
    ip_cidr
    ,
    domain_regex
    ,
    destination_group
    ,
    port
    ,
    network
    ,
    dns_mode
    ) с локальной валидацией
  • Диагностика качества соединения: health-сигналы, история по окнам час/день/неделя, агрегированные сводки, графики RTT/Jitter/трафика и оценка стабильности по сессиям
  • Статистика трафика
  • App Intents / App Shortcuts для Action Button

Архитектура

Слои приложения:

  • Domain
    — канонические сущности и инварианты
  • Application
    — сценарии, оркестрация состояния, use-case логика
  • Infrastructure
    — bridge к sing-box, storage, мониторинги, import/normalization
  • Presentation
    — SwiftUI экраны и однонаправленный поток состояния

Ключевые модули:

  • TunnelControl
    — управление
    NETunnelProviderManager
  • EngineBridge
    — API
    start/stop/reload/stats
    и компиляция runtime-конфига
  • SubscriptionManager
    — обновление, нормализация, статусы подписок
  • RuleCompiler
    — DSL правил и компиляция в backend-config
  • Diagnostics
    — health/traffic телеметрия и агрегации
  • AppIntents
    — короткие команды для Shortcuts и Action Button

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

  • Wolfram/
    — основной iOS target
  • WolframPacketTunnel/
    — Packet Tunnel Extension target
  • Frameworks/Libbox.xcframework/
    — backend-core
  • Packages/
    — shared код и пакеты
  • WolframTests/
    — unit-тесты
  • WolframUITests/
    — UI-тесты

Требования

  • macOS + Xcode 17+
  • iOS Simulator runtime 26.2+ (или актуальный поддерживаемый)
  • включенные capabilities в Apple Developer профиле:
    Network Extension
    ,
    App Groups
    ,
    Keychain Access Groups

Локальный запуск

Сборка:

Если используется Personal Team и недоступна capability

Network Extensions
, запускайте локальный таргет без extension:

WolframLocalDebug
не встраивает
Packet Tunnel Extension
, не требует entitlements
Network Extensions
и автоматически работает через
MockTunnelController
(режим безопасной локальной отладки UI/бизнес-логики).

Unit-тесты:

Полный прогон (unit + UI):

Отчет покрытия:

Качество и тестирование

Минимальные требования для merge:

  • успешная сборка
  • зеленый прогон
    WolframTests
  • отсутствие регрессий в
    WolframUITests
  • обновленные тесты для новой бизнес-логики

Процесс разработки на GitVerse

Репозиторий сопровождается в GitVerse и использует GitVerse как основную площадку для совместной работы.

  • задачи и обсуждения ведутся в GitVerse
  • изменения интегрируются через Merge Request
  • ревью проводится в GitVerse

GitHub-специфичные процессы не считаются основным каналом сопровождения проекта.

Документация проекта

Безопасность

Если вы нашли уязвимость, не публикуйте ее публично до исправления.

Контакт для disclosure: lightwood-dev@proton.me Подробности: SECURITY.md

Контакты

Почта разработчика: lightwood-dev@proton.me