🔧 Техническая документация 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 Для полной обработки конфигов