Sobre o projeto
# EndlessNet Client
O EndlessNet Client fornece a infraestrutura central para a rede EndlessNet, funcionando como um agente de longa duração, interface de linha de comando (CLI) e integração de serviços em Linux, macOS e Windows. Ele lida com operações críticas de rede, incluindo consumo de catálogo de serviços assinado, gerenciamento de rotas de aplicações L3, descoberta de conectores e aplicação de pacotes.
## Principais Recursos
- **Suporte Multiplataforma**: Operação nativa em Linux (Ubuntu/Debian), Windows Server e macOS.
- **Rede Segura**: Implementa contratos de transmissão assinados e interações HTTP de plano de controle para garantir integridade de dados e acesso autorizado.
- **Integração de Serviços**: Gerencia Comunicação Entre Processos (IPC) local via a fronteira pública `ipc/v2`, expondo clientes de transporte estritos enquanto mantém estado interno, identidade e implementações STUN privados.
- **CLI e Automação**: Oferece uma CLI para interação do usuário, com comandos específicos restritos por políticas de segurança (por exemplo, aprovação de rota requer o console de administração).
- **Testes Robustos**: Inclui pipelines de CI abrangentes cobrindo testes de instalação, aceitação básica de serviço, persistência de desconexão e cenários de contrato com cliente real contra servidores de teste isolados.
## Arquitetura e Dependências
O cliente depende de módulos externos para seus contratos de API:
- **API do Plano de Controle**: Consome DTOs versionados e clientes de `github.com/endless-net/client-api/clientapi`. Isso inclui contratos HTTP/recovery (v1), mensagens protobuf e bindings Connect.
- **Fronteira Pública**: O único pacote Go exposto é `ipc/v2`, que lida com contratos IPC v2 de serviço local.
## Build e Release
Desenvolvedores podem compilar o cliente usando ferramentas Go padrão:
```bash
go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper
go test -short ./...
```
As releases são publicadas via GitHub Releases para Windows amd64 e Linux amd64, juntamente com pacotes APT para Debian/Ubuntu (amd64/arm64). A matriz de CI garante compatibilidade entre Ubuntu 22.04/24.04, Windows 2022/2025 e macOS 15.
## Documentação
Guias operacionais detalhados e especificações técnicas estão disponíveis no diretório `docs` do repositório:
- [`docs/ru/client-and-network.md`](docs/ru/client-and-network.md): Guia de arquitetura e operações em russo.
- [`docs/service-discovery.md`](docs/service-discovery.md): Detalhes do consumo de catálogo de serviços assinado.
- [`docs/application-runtime.md`](docs/application-runtime.md): Rotas L3 e aplicação de pacotes.
- [`docs/installation-tests.md`](docs/installation-tests.md): Critérios de instalação e aceitação.
- [`docs/testing-control-plane.md`](docs/testing-control-plane.md): Testes de cenário do plano de controle.
- [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml): Contrato IPC de serviço local.
- [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md): Processos de recuperação de propriedade.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.