👨💻 Разработка и вклад в Flux
Присоединяйтесь к разработке! Этот раздел для разработчиков, которые хотят внести свой вклад.
📁 Структура исходного кода
source/
├── main.py # Основной исполняемый файл
├── config/ # Настройки проекта
│ ├── settings.py # Общие настройки
│ ├── URLS.txt # Список URL
│ ├── URLS_base64.txt # Base64 подписки
│ ├── whitelist-all.txt # SNI домены
│ └── cidrwhitelist.txt # CIDR адреса
├── fetchers/fetcher.py # Загрузка конфигов
├── processors/config_processor.py # Обработка
└── utils/ # Вспомогательные модули
├── logger.py # Логирование
├── file_utils.py # Файловые операции
└── github_handler.py # GitHub API
✨ Новые функции и улучшения
Добавлена валидация: Функция
is_valid_vpn_config_url() в модулях processors/config_processor.py и utils/file_utils.py проверяет, является ли строка действительной VPN конфигурацией по формату протокол://
Все функции обработки теперь используют валидацию, чтобы избежать включения неподходящих строк (текстовых комментариев) в итоговые файлы.
🚀 Запуск локально
# Клонирование репозитория
git clone https://github.com/username/flux
cd flux/source
# Установка зависимостей
pip install -r requirements.txt
# Настройка токена
export MY_TOKEN=<GITHUB_TOKEN> # токен с правом repo
# Запуск генератора
python main.py # конфиги появятся в ../githubmirror
Тестирование без загрузки:
python main.py --dry-run
Выполнит все операции, кроме загрузки в GitHub.
🤝 Внесение изменений
- Форкните репозиторий
- Создайте ветку:
git checkout -b feature/новая-функция - Внесите изменения
- Сделайте коммит:
git commit -m 'Добавил новую функцию' - Запушьте:
git push origin feature/новая-функция - Создайте Pull Request
🧪 Тестирование
Локальное тестирование
# Тестовый запуск
python main.py --dry-run
# Запуск тестов
python -m pytest tests/
# Конкретный тест
python -m pytest tests/test_fetchers.py
# С покрытием кода
python -m pytest --cov=src tests/
Шаблоны
📝 Issue:
**Описание проблемы**
**Шаги для воспроизведения**
**Ожидаемое поведение**
**Версия:** 1.0.0
**ОС:** Windows/Linux/Mac
🚀 Pull Request:
## Описание изменений
## Тип изменения
## Чеклист
- [ ] Код соответствует стилю
- [ ] Добавлены тесты
- [ ] Обновлена документация
📋 Требования
| Компонент | Версия | Назначение |
|---|---|---|
| Python | 3.8+ | Основной язык |
| requests | 2.28+ | HTTP запросы |
| PyGithub | 1.55+ | GitHub API |
| python-dotenv | 0.21+ | Переменные окружения |
| colorama | 0.4.6+ | Цветной вывод |
🎯 Архитектурные принципы
🧩 Модульность
Каждый компонент выполняет одну задачу
🧪 Тестируемость
Функции должны быть легко тестируемыми
⚡ Производительность
Параллельные операции, эффективные алгоритмы
🛡️ Устойчивость
Обработка ошибок внешних сервисов
📝 Документация
Код должен быть хорошо документирован
🔧 Поддерживаемость
Простота внесения изменений
📈 Дорожная карта
Q1
2026 Q1: Стабилизация
- Улучшение обработки ошибок
- Оптимизация производительности
- Расширение тестового покрытия
Q2
2026 Q2: Новые функции
- Поддержка новых протоколов
- Улучшение фильтрации
- API для разработчиков
Q3
2026 Q3: Расширение
- Поддержка новых регионов
- Улучшение документации
- Интеграция с сервисами