Sobre el proyecto

Sōzu es un servidor proxy inverso ligero y rápido escrito en Rust, desarrollado por Clever Cloud. Su rasgo definitorio es estar "siempre disponible": los cambios de configuración llegan en tiempo de ejecución a través de sockets unix seguros sin recargar, y el proxy puede actualizarse a sí mismo mientras sigue procesando solicitudes. Capacidades clave descritas en el README: - Configuración en caliente: cambios en tiempo de ejecución mediante sockets unix, sin necesidad de reinicio. - Actualizaciones sin tiempo de inactividad: el supervisor maestro/trabajador reemplaza a los trabajadores mientras el tráfico continúa. - Terminación TLS: actúa como punto final TLS para que los backends puedan permanecer en texto plano; elección en tiempo de compilación de backends criptográficos — ring (predeterminado), AWS-LC (con opciones post-cuánticas y FIPS 140-3) y OpenSSL. - Protección de red: los backends están protegidos detrás del proxy; los trabajadores están en sandbox, y Rust proporciona seguridad de memoria. - Orientación al rendimiento: manejo HTTP de copia cero mediante la biblioteca Kawa y TLS de baja sobrecarga mediante Rustls. - TUI de operador en vivo: `sozu top` (construida con la característica `tui`) proporciona un panel estilo btop/htop sobre el socket de comandos, con sparklines, tablas ordenables de clústeres y backends, contadores de mitigación de floods HTTP/2 y un tail de eventos codificado por colores. Las opciones de instalación incluyen binarios Linux precompilados adjuntos a las versiones etiquetadas de GitHub (que cubren objetivos x86_64 gnu/musl y aarch64 gnu en variantes de proveedores criptográficos), imágenes Docker en Docker Hub como `clevercloud/sozu`, y compilación desde el código fuente. Las versiones incluyen SHA256SUMS, firmas sin clave de sigstore y atestaciones de procedencia de compilación SLSA; el README señala que las imágenes Docker se compilan de manera diferente a los tarballs firmados y no son equivalentes byte a byte. Un inicio rápido requiere `protoc` y una cadena de herramientas Rust fijada, luego `cargo build -p sozu --release --locked` y `target/release/sozu start -c bin/config.toml`. El espacio de trabajo de Cargo contiene cinco crates: `lib` (la biblioteca de proxy inverso con un bucle de eventos mio de un solo hilo, multiplexación HTTP/1.1 y HTTP/2, protocolos TCP/UDP/TLS, enrutamiento, limitación de velocidad por IP, métricas, grupo de búferes), `bin` (el binario supervisor, socket de comandos, reconfiguración en caliente, TUI opcional), `command` (esquema IPC protobuf, analizador de configuración, estado replicado, ayudantes de paso de FD), `e2e` (arnés de integración con trabajadores reales y clientes/backends simulados), y `sim` (simulación determinista del núcleo UDP sans-io). Un crate `fuzz` separado cubre el análisis de tramas y la decodificación HPACK. El soporte HTTP/2 incluye mitigaciones de floods para CVE-2023-44487 (Rapid Reset), CVE-2024-27316 (CONTINUATION flood) y CVE-2025-8671 (MadeYouReset), además de floods de PING/SETTINGS/prioridad. Licencias: Sōzu en sí es AGPL-3.0-or-later; el tráfico que pasa a través de él no se considera trabajo cubierto, pero se espera que un negocio construido sobre el código o los algoritmos de Sōzu (por ejemplo, un producto de balanceador de carga) contribuya de vuelta o acuerde un acuerdo comercial con Clever Cloud. El crate `sozu-command-lib` es LGPL-3.0.