mirror of https://github.com/ospab/ostp.git
7.2 KiB
7.2 KiB
Участие в разработке OSTP
Спасибо за интерес к участию в разработке OSTP (Ospab Stealth Transport Protocol)! Мы рады любой помощи: от написания кода и тестирования до работы над документацией и проведения аудита безопасности.
Присылая изменения в проект, вы соглашаетесь соблюдать правила нашего сообщества и условия лицензии.
Содержание
- Подготовка окружения
- Структура проекта
- Процесс разработки
- Правила оформления кода
- Создание Pull Request
- Уязвимости безопасности
Подготовка окружения
Для локальной сборки и тестирования OSTP вам понадобятся:
- Rust Toolchain (1.75+): Рекомендуется установить через rustup.
- Node.js (18+) и npm: Необходимы для сборки веб-панели управления (
ostp-control) и сборки интерфейса Tauri. - Git: Для контроля версий.
Сборка проекта
-
Клонируйте репозиторий:
git clone https://github.com/ospab/ostp.git cd ostp -
Соберите веб-интерфейс панели управления:
cd ostp-control npm install npm run build cd .. -
Соберите весь Cargo-workspace:
cargo build -
Запустите тесты:
cargo test --workspace
Структура проекта
Репозиторий представляет собой единый Cargo-workspace со следующими компонентами:
ostp-core/: Базовая логика протокола: форматирование пакетов, сериализация, конечный автомат выборочного подтверждения (ARQ/ACK/NACK) и рукопожатие Noise (Noise_NNpsk0_25519_ChaChaPoly_BLAKE2s).ostp-client/: Клиентская часть: локальные SOCKS5/HTTP прокси-серверы, интеграция с драйверомwintun/tun2socksи реализация раздельного туннелирования для прямого обхода трафика.ostp-server/: Серверная часть: диспетчеризация сессий, маскировка под классические веб-серверы при активном сканировании, база данных ключей доступа и REST API панели управления.ostp-control/: Панель администратора (пользователи, статистика трафика в реальном времени, лимиты скорости и объема данных).ostp-gui/: Настольное приложение-клиент для Windows и Linux на платформе Tauri.ostp-flutter/: Мобильный клиент для платформы Android.
Процесс разработки
- Проверьте существующие задачи или откройте новую тему (Issue) для обсуждения предлагаемых изменений.
- Сделайте fork репозитория и создайте новую ветку от
master:git checkout -b feat/имя-вашей-фичи - Внесите необходимые изменения и добавьте соответствующие модульные или интеграционные тесты.
- Выровняйте форматирование кода:
cargo fmt --all - Запустите статический анализатор:
cargo clippy --workspace --all-targets -- -D warnings - Убедитесь, что все тесты проходят:
cargo test --workspace
Правила оформления кода
- Безопасность (Safety): Избегайте использования блоков
unsafeвезде, где это возможно. Допускается их использование только для низкоуровневых системных вызовов (например, FFI-настройки сокетовsetsockopt). Любой блокunsafeдолжен сопровождаться комментарием// SAFETY: .... - Документация: Пишите документацию для публичных модулей, структур и методов. Сохраняйте целостность комментариев при рефакторинге.
- Логирование: Используйте фреймворк
tracingдля структурированного логирования. Не используйтеprintln!в рабочем коде. - Дизайн: При изменении веб-интерфейсов или GUI следуйте современным визуальным трендам (плавные анимации, сбалансированная цветовая гамма, адаптивная верстка).
Создание Pull Request
- Отправьте ветку в ваш fork-репозиторий:
git push origin feat/имя-вашей-фичи - Создайте Pull Request (PR) в ветку
masterосновного репозитория. - Подробно опишите внесенные изменения: какая проблема решается, как проводилось тестирование и на каких платформах проверялась сборка.
- Убедитесь, что автоматическое тестирование (GitHub Actions CI) завершилось успешно.
Уязвимости безопасности
Если вы обнаружили уязвимость, пожалуйста, не публикуйте её в открытых Issue. Вместо этого отправьте отчёт разработчикам на почту gvoprgrg@gmail.com для координации закрытого исправления.