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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.