À propos du projet
# EndlessNet Client
EndlessNet Client fournit l'infrastructure centrale du réseau EndlessNet, fonctionnant comme un agent de longue durée, une interface en ligne de commande (CLI) et une intégration de services sur Linux, macOS et Windows. Il gère des opérations réseau critiques, notamment la consommation d'un catalogue de services signé, la gestion des routes applicatives L3, la découverte des connecteurs et l'application des paquets.
## Fonctionnalités clés
- **Prise en charge multiplateforme** : fonctionnement natif sur Linux (Ubuntu/Debian), Windows Server et macOS.
- **Réseautage sécurisé** : met en œuvre des contrats filaires signés et des interactions HTTP du plan de contrôle pour garantir l'intégrité des données et un accès autorisé.
- **Intégration de services** : gère la communication locale entre processus (IPC) via la frontière publique `ipc/v2`, exposant des clients de transport stricts tout en gardant privés l'état interne, l'identité et les implémentations STUN.
- **CLI et automatisation** : offre une CLI pour l'interaction utilisateur, avec des commandes spécifiques restreintes par des politiques de sécurité (par exemple, l'approbation des routes nécessite la console d'administration).
- **Tests robustes** : inclut des pipelines CI complets couvrant les tests d'installation, l'acceptation de service de base, la persistance de déconnexion et des scénarios de contrat avec de vrais clients contre des serveurs de test isolés.
## Architecture et dépendances
Le client s'appuie sur des modules externes pour ses contrats d'API :
- **API du plan de contrôle** : consomme des DTO versionnés et des clients depuis `github.com/endless-net/client-api/clientapi`. Cela inclut les contrats HTTP/recovery (v1), les messages protobuf et les bindings Connect.
- **Frontière publique** : le seul paquet Go exposé est `ipc/v2`, qui gère les contrats IPC v2 du service local.
## Build et publication
Les développeurs peuvent compiler le client avec les outils Go standard :
```bash
go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper
go test -short ./...
```
Les versions sont publiées via GitHub Releases pour Windows amd64 et Linux amd64, ainsi que des paquets APT pour Debian/Ubuntu (amd64/arm64). La matrice CI assure la compatibilité avec Ubuntu 22.04/24.04, Windows 2022/2025 et macOS 15.
## Documentation
Des guides opérationnels détaillés et des spécifications techniques sont disponibles dans le répertoire `docs` du dépôt :
- [`docs/ru/client-and-network.md`](docs/ru/client-and-network.md) : guide d'architecture et d'exploitation en russe.
- [`docs/service-discovery.md`](docs/service-discovery.md) : détails sur la consommation du catalogue de services signé.
- [`docs/application-runtime.md`](docs/application-runtime.md) : routes L3 et application des paquets.
- [`docs/installation-tests.md`](docs/installation-tests.md) : critères d'installation et d'acceptation.
- [`docs/testing-control-plane.md`](docs/testing-control-plane.md) : tests de scénarios du plan de contrôle.
- [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml) : contrat IPC du service local.
- [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md) : processus de récupération de propriété.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.