Об этом проекте

Sōzu — это легковесный, быстрый обратный прокси-сервер, написанный на Rust и разработанный компанией Clever Cloud. Его определяющая черта — «always-up»: изменения конфигурации поступают во время работы через защищённые unix-сокеты без перезагрузки, а прокси может обновлять сам себя, продолжая обрабатывать запросы. Ключевые возможности, описанные в README: - Горячая конфигурация: изменения во время работы через unix-сокеты, перезапуск не требуется. - Обновления без простоя: супервизор master/worker заменяет воркеры, пока трафик продолжается. - Терминация TLS: выступает в роли TLS-эндпоинта, чтобы бэкенды могли оставаться незашифрованными; выбор криптографических бэкендов на этапе компиляции — ring (по умолчанию), AWS-LC (с постквантовыми и FIPS 140-3 опциями) и OpenSSL. - Сетевая защита: бэкенды экранированы за прокси; воркеры изолированы в песочнице, а Rust обеспечивает безопасность памяти. - Ориентация на производительность: zero-copy обработка HTTP через библиотеку Kawa и TLS с низкими накладными расходами через Rustls. - Live-интерфейс оператора TUI: `sozu top` (собирается с функцией `tui`) предоставляет дашборд в стиле btop/htop поверх командного сокета, со спарклайнами, сортируемыми таблицами кластеров и бэкендов, счётчиками защиты от флуда HTTP/2 и цветным потоком событий. Варианты установки включают готовые бинарники для Linux, прикреплённые к тегированным релизам GitHub (охватывающие цели x86_64 gnu/musl и aarch64 gnu для различных вариантов криптопровайдеров), Docker-образы на Docker Hub как `clevercloud/sozu` и сборку из исходного кода. Релизы поставляются с SHA256SUMS, бесключевыми подписями sigstore и аттестациями происхождения сборки SLSA; в README отмечено, что Docker-образы собираются иначе, чем подписанные tarball-архивы, и не являются побайтово эквивалентными. Для быстрого старта требуются `protoc` и зафиксированный toolchain Rust, затем `cargo build -p sozu --release --locked` и `target/release/sozu start -c bin/config.toml`. Рабочее пространство Cargo содержит пять крейтов: `lib` (библиотека обратного прокси с однопоточным циклом событий mio, мультиплексированием HTTP/1.1 и HTTP/2, протоколами TCP/UDP/TLS, маршрутизацией, ограничением скорости на IP, метриками, пулом буферов), `bin` (бинарник супервизора, командный сокет, горячая переконфигурация, опциональный TUI), `command` (схема IPC на protobuf, парсер конфигурации, реплицированное состояние, помощники для передачи файловых дескрипторов), `e2e` (интеграционный стенд с реальными воркерами и mock-клиентами/бэкендами) и `sim` (детерминированная симуляция sans-io ядра UDP). Отдельный крейт `fuzz` покрывает разбор фреймов и декодирование HPACK. Поддержка HTTP/2 включает защиты от флуда для CVE-2023-44487 (Rapid Reset), CVE-2024-27316 (CONTINUATION flood) и CVE-2025-8671 (MadeYouReset), а также от флуда PING/SETTINGS/priority. Лицензирование: сам Sōzu распространяется под AGPL-3.0-or-later; трафик, проходящий через него, не считается производной работой, но бизнес, построенный на коде или алгоритмах Sōzu (например, продукт балансировщика нагрузки), должен внести вклад обратно или заключить коммерческое соглашение с Clever Cloud. Крейт `sozu-command-lib` распространяется под LGPL-3.0.