Введение в HaloLink
HaloLink — это модульный I/O фреймворк, разработанный для высоконагруженных микросервисных архитектур. Он выступает в роли умного прокси (Layer 4 / Layer 7), который динамически распределяет потоки данных, обеспечивает end-to-end шифрование и защищает внутреннюю инфраструктуру от прямого доступа.
В отличие от классических решений (таких как HAProxy или Nginx), HaloLink спроектирован с упором на асинхронную передачу бинарных данных через защищенные каналы с минимальным оверхедом (менее 0.3ms на пакет).
Установка
HaloLink поставляется в виде единого бинарного файла, не требующего дополнительных зависимостей. Вы можете запустить его напрямую как systemd-сервис, либо использовать Docker.
Вариант 1: Установочный bash-скрипт (Ubuntu / Debian)
Самый быстрый способ развернуть узел (Node) в вашей инфраструктуре:
curl -sL https://raw.githubusercontent.com/halolink/core/install.sh | bash
systemctl enable halolink
systemctl start halolink
Вариант 2: Запуск через Docker Compose
Для контейнеризированных сред мы предоставляем официальный образ на Docker Hub. Пример файла docker-compose.yml:
version: '3.8'
services:
halolink-core:
image: halolink/core:latest
container_name: halolink-node
restart: always
network_mode: "host"
volumes:
- ./config.json:/etc/halolink/config.json:ro
- ./certs:/etc/halolink/certs:ro
environment:
- HL_LOG_LEVEL=info
- HL_WORKER_THREADS=auto
Структура конфигурации
Вся маршрутизация описывается в едином JSON файле. Движок отслеживает изменения файла и способен делать "горячую перезагрузку" (hot-reload) без обрыва текущих TCP-сессий.
{
"log": {
"level": "warning",
"output": "/var/log/halolink/core.log"
},
"inbounds": [
{
"port": 443,
"protocol": "halo-tls",
"settings": {
"certificates": [
{
"certificateFile": "/etc/halolink/certs/fullchain.pem",
"keyFile": "/etc/halolink/certs/privkey.pem"
}
]
}
}
],
"outbounds": [
{
"tag": "database-cluster",
"protocol": "tcp",
"settings": {
"address": "10.0.5.10",
"port": 5432
}
}
]
}
Changelog (История версий)
Здесь публикуются изменения стабильной ветки (Stable Channel) и ранние сборки для тестирования (Beta). Обновления безопасности бэкпортируются автоматически.
- Feature Предварительная поддержка нового транспортного протокола QUIC. Снижает задержку установки соединения при плохом интернете.
- Fix Устранено падение демона при попытке маршрутизировать поврежденные UDP-пакеты.
- Feature Добавлена экспериментальная поддержка eBPF (Extended Berkeley Packet Filter) для ядра Linux 5.15+. Ускоряет пересылку пакетов на 40% за счет обхода стандартного сетевого стека.
- Feature Реализован алгоритм балансировки
least_latencyдля автоматического выбора узла с минимальным пингом. - Fix Устранена утечка памяти (Memory Leak) при обработке тысяч незавершенных gRPC стримов.
- Fix Исправлена ошибка валидации сертификатов при включенной строгой проверке mTLS.
- Feature Крупное обновление архитектуры. Переход на модульный движок маршрутизации (Routing v2).
- Feature Нативная поддержка Docker Swarm: автоматическое обнаружение (Service Discovery) контейнеров без перезагрузки конфига.
- Feature Интеграция политик Zero-Trust. Добавлены новые алгоритмы ChaCha20-Poly1305 для ARM архитектуры.
- Fix Значительно уменьшено потребление CPU на холостом ходу.