Sobre el proyecto

# EndlessNet Client EndlessNet Client proporciona la infraestructura central para la red EndlessNet, funcionando como un agente de larga duración, interfaz de línea de comandos (CLI) e integración de servicios en Linux, macOS y Windows. Gestiona operaciones de red críticas, incluyendo el consumo de catálogos de servicios firmados, la gestión de rutas de aplicaciones L3, el descubrimiento de conectores y la aplicación de paquetes. ## Características principales - **Soporte multiplataforma**: Funcionamiento nativo en Linux (Ubuntu/Debian), Windows Server y macOS. - **Redes seguras**: Implementa contratos de comunicación firmados e interacciones HTTP del plano de control para garantizar la integridad de los datos y el acceso autorizado. - **Integración de servicios**: Gestiona la comunicación local entre procesos (IPC) a través del límite público `ipc/v2`, exponiendo clientes de transporte estrictos mientras mantiene privados el estado interno, la identidad y las implementaciones de STUN. - **CLI y automatización**: Ofrece una CLI para la interacción del usuario, con comandos específicos restringidos por políticas de seguridad (por ejemplo, la aprobación de rutas requiere la consola de administración). - **Pruebas robustas**: Incluye pipelines de CI completos que cubren pruebas de instalación, aceptación básica del servicio, persistencia de desconexión y escenarios de contrato con clientes reales contra servidores de prueba aislados. ## Arquitectura y dependencias El cliente depende de módulos externos para sus contratos de API: - **API del plano de control**: Consume DTOs y clientes versionados de `github.com/endless-net/client-api/clientapi`. Esto incluye contratos HTTP/recovery (v1), mensajes protobuf y enlaces Connect. - **Límite público**: El único paquete Go expuesto es `ipc/v2`, que gestiona los contratos IPC v2 del servicio local. ## Compilación y publicación Los desarrolladores pueden compilar el cliente usando herramientas estándar de Go: ```bash go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper go test -short ./... ``` Las versiones se publican a través de GitHub Releases para Windows amd64 y Linux amd64, junto con paquetes APT para Debian/Ubuntu (amd64/arm64). La matriz de CI garantiza la compatibilidad con Ubuntu 22.04/24.04, Windows 2022/2025 y macOS 15. ## Documentación Las guías operativas detalladas y las especificaciones técnicas están disponibles en el directorio `docs` del repositorio: - [`docs/ru/client-and-network.md`](docs/ru/client-and-network.md): Guía de arquitectura y operaciones en ruso. - [`docs/service-discovery.md`](docs/service-discovery.md): Detalles del consumo del catálogo de servicios firmados. - [`docs/application-runtime.md`](docs/application-runtime.md): Rutas L3 y aplicación de paquetes. - [`docs/installation-tests.md`](docs/installation-tests.md): Criterios de instalación y aceptación. - [`docs/testing-control-plane.md`](docs/testing-control-plane.md): Pruebas de escenarios del plano de control. - [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml): Contrato IPC del servicio local. - [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md): Procesos de recuperación de propiedad.