🔧 Техническая документация Flux
Архитектура, алгоритмы работы и оптимизации генератора конфигов.
🏗️ Архитектура генератора
Генератор построен с использованием модульной архитектуры:
flux-generator/
├── config/ # Настройки и конфигурации
├── fetchers/ # Загрузка конфигов из источников
├── processors/ # Обработка и фильтрация
└── utils/ # Вспомогательные функции
🧩 Основные компоненты
📥 Fetcher
- Загружает конфиги из внешних источников
- Обрабатывает обычные ссылки и base64
- Устойчивость к ошибкам подключения
- Сессии с повторными попытками
⚙️ Processor
- Фильтрация по SNI доменам и CIDR
- Дедупликация по host:port
- Обработка base64 подписок
- Фильтрация insecure параметров
🐙 GitHub Handler
- Управление загрузкой в репозиторий
- Обработка конфликтов SHA
- Повторные попытки обновления
- Обновление информации о файлах
✅ Улучшенная валидация
Новая функция: Теперь учитываются только строки, начинающиеся с поддерживаемого протокола для предотвращения включения неподходящих строк.
def validate_config_line(line):
"""Проверяет валидность строки конфига"""
supported_protocols = [
'vless://', 'vmess://', 'trojan://',
'ss://', 'hysteria2://', 'tuic://'
]
line = line.strip()
if not line:
return False
# Проверка начала строки на протокол
return any(line.startswith(proto) for proto in supported_protocols)
🔄 Алгоритм работы
1
Параллельная загрузка
Загрузка конфигов из всех источников одновременно
2
Сохранение конфигов
Обычные конфиги в папку default/
3
Создание обходных конфигов
Безопасные (bypass/) и все (bypass-unsecure/)
4
Разделение по протоколам
В папке split-by-protocols/ для secure и unsecure
5
Загрузка в GitHub
Публикация всех файлов в репозитории
⚡ Оптимизации
🚀 Параллельные загрузки
Ускорение процесса загрузки конфигов
💾 Кэширование
Избегание лишних коммитов в репозиторий
📱 Разделение файлов
Максимум 300 конфигов для мобильных
🔍 Умные regex
Быстрая фильтрация конфигов
🔒 Фильтрация
Удаление insecure параметров
🔄 Поддержка источников
Обычные ссылки и base64 подписки
📊 Технические ограничения
| Параметр | Значение | Примечание |
|---|---|---|
| Конфигов в файле | ≤ 300 | Для производительности на мобильных |
| Обновление | 12 часов | Автоматически через GitHub Actions |
| Протоколы | 7+ | V2Ray, VLESS, Trojan, VMess и др. |
| Время обработки | 5-10 минут | Зависит от количества источников |
| Память | ~500MB | Для полной обработки конфигов |