About this project

# EndlessNet Client EndlessNet Client provides the core infrastructure for the EndlessNet network, functioning as a long-running agent, command-line interface (CLI), and service integration across Linux, macOS, and Windows. It handles critical network operations including signed service catalog consumption, L3 application route management, connector discovery, and packet enforcement. ## Key Features - **Cross-Platform Support**: Native operation on Linux (Ubuntu/Debian), Windows Server, and macOS. - **Secure Networking**: Implements signed wire contracts and control-plane HTTP interactions to ensure data integrity and authorized access. - **Service Integration**: Manages local Inter-Process Communication (IPC) via the `ipc/v2` public boundary, exposing strict transport clients while keeping internal state, identity, and STUN implementations private. - **CLI & Automation**: Offers a CLI for user interaction, with specific commands restricted by security policies (e.g., route approval requires the administration console). - **Robust Testing**: Includes comprehensive CI pipelines covering installation tests, basic service acceptance, disconnect persistence, and real-client contract scenarios against isolated test servers. ## Architecture & Dependencies The client relies on external modules for its API contracts: - **Control-Plane API**: Consumes versioned DTOs and clients from `github.com/endless-net/client-api/clientapi`. This includes HTTP/recovery contracts (v1), protobuf messages, and Connect bindings. - **Public Boundary**: The only exposed Go package is `ipc/v2`, which handles local service IPC v2 contracts. ## Build and Release Developers can build the client using standard Go tools: ```bash go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper go test -short ./... ``` Releases are published via GitHub Releases for Windows amd64 and Linux amd64, along with APT packages for Debian/Ubuntu (amd64/arm64). The CI matrix ensures compatibility across Ubuntu 22.04/24.04, Windows 2022/2025, and macOS 15. ## Documentation Detailed operational guides and technical specifications are available in the repository's `docs` directory: - [`docs/ru/client-and-network.md`](docs/ru/client-and-network.md): Russian architecture and operations guide. - [`docs/service-discovery.md`](docs/service-discovery.md): Signed service catalog consumption details. - [`docs/application-runtime.md`](docs/application-runtime.md): L3 routes and packet enforcement. - [`docs/installation-tests.md`](docs/installation-tests.md): Installation and acceptance criteria. - [`docs/testing-control-plane.md`](docs/testing-control-plane.md): Control-plane scenario testing. - [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml): Local service IPC contract. - [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md): Ownership recovery processes.