Skip to content

Обзор разработки ​

RUSEON Core — это высокопроизводительная платформа видеоинфраструктуры и пайплайн обработки AI-метаданных, написанная на языке Go. Архитектура системы построена на принципах zero-copy управления памятью, низколатентного трансмуксинга (RTSP в HLS и WebRTC/WHEP без перекодирования), отказоустойчивой записи fMP4-архива с оптимизациями ввода-вывода ядра Linux и передачи метаданных через gRPC.

В данном разделе собраны руководства по настройке локального окружения, запуску тестов, проведению бенчмарков и участию в развитии проекта (Open Source & Enterprise).

Технологический стек ​

СлойТехнологии и библиотекиНазначение и ответственность
Серверное ядроGo 1.26+, gorilla/websocket, pion/webrtcВысокопроизводительный трансмуксинг, кольцевой буфер, WHEP-сервер
База данных и состояниеBadgerDB v4 (dgraph-io/badger/v4)Встраиваемое key-value хранилище с синхронной гарантией записи (ACID)
Пайплайн AI-метаданныхgRPC (google.golang.org/grpc), Protocol BuffersПриём детекций и телеметрии в реальном времени с минимальным CPU
Метрики и пробыPrometheus (prometheus/client_golang)Метрики производительности, счётчики дропов, пробы /livez и /readyz
Веб-интерфейсReact 19, TypeScript, Vite, Tailwind CSSПанель управления, WebRTC/HLS плееры, интерактивный таймлайн архива
Тестирование и CITestcontainers, k6, Go Native Fuzzing, GitHub ActionsE2E-тесты полного цикла, нагрузочное тестирование, статический анализ

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

Структура проекта организована в соответствии со стандартами Go:

text
ruseon-core/
├── api/                    # Protocol Buffer (.proto) файлы и спецификации OpenAPI/Swagger
├── cmd/
│   ├── server/             # Точка входа HTTP/WebRTC/HLS/gRPC сервера
│   └── ruseon-cli/         # Административная CLI-утилита
├── internal/
│   ├── api/                # REST HTTP-обработчики, middleware и маршрутизация
│   ├── auth/               # JWT-аутентификация и управление пользователями
│   ├── buffer/             # Zero-copy RingBuffer и lock-free бродкастер
│   ├── config/             # Загрузчик конфигурации (YAML и переменные окружения)
│   ├── db/                 # BadgerDB v4, миграции схемы и транзакции
│   ├── events/             # Вебхуки с circuit breaker и MQTT-паблишер
│   ├── grpc/               # Реализация gRPC-сервера приёма AI-метаданных
│   ├── metrics/            # Коллекторы метрик Prometheus и реестр телеметрии
│   ├── recorder/           # Прямой fMP4-архиватор со скользящим окном sync_file_range
│   └── stream/             # RTSP-клиент, Pion WebRTC движок и HLS-муксер
├── pkg/                    # Переиспользуемые публичные пакеты и сгенерированные gRPC-типы
├── tests/                  # End-to-End (E2E) тесты с Testcontainers
└── web/                    # React 19 одностраничное приложение (SPA)

Ключевые инженерные принципы ​

  1. Zero-Allocations на горячем пути: Распределение видеокадров через Ring Buffer (Кольцевой буфер) исключает лишние аллокации в куче и нагрузку на GC.
  2. Отказоустойчивость архива: Запись на диск использует системные вызовы ядра Linux (sync_file_range, FADV_DONTNEED), защищая системный Page Cache от вытеснения при интенсивной записи.
  3. Строгие стандарты качества кода: Каждый Pull Request проходит race detector (-race), unit-тестирование, фаззинг и полный E2E-пайплайн с реальным видеопотоком.
  4. Синхронная локализация: Вся функциональность и API документируются параллельно на русском и английском языках.

Подразделы ​

Связанная документация ​

Released under the MIT License.