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