Об этом проекте
# EndlessNet Client
EndlessNet Client обеспечивает базовую инфраструктуру для сети EndlessNet, функционируя как долгоработающий агент, интерфейс командной строки (CLI) и интеграция сервисов в Linux, macOS и Windows. Он обрабатывает критически важные сетевые операции, включая потребление подписанного каталога сервисов, управление маршрутами приложений L3, обнаружение коннекторов и применение пакетов.
## Ключевые возможности
- **Кроссплатформенная поддержка**: Нативная работа в Linux (Ubuntu/Debian), Windows Server и macOS.
- **Безопасные сети**: Реализует подписанные wire-контракты и HTTP-взаимодействия control-plane для обеспечения целостности данных и авторизованного доступа.
- **Интеграция сервисов**: Управляет локальным межпроцессным взаимодействием (IPC) через публичную границу `ipc/v2`, предоставляя строгие транспортные клиенты, сохраняя внутреннее состояние, идентичность и реализации STUN приватными.
- **CLI и автоматизация**: Предлагает CLI для взаимодействия с пользователем, при этом определённые команды ограничены политиками безопасности (например, утверждение маршрутов требует административной консоли).
- **Надёжное тестирование**: Включает комплексные CI-конвейеры, охватывающие тесты установки, базовую приёмку сервиса, сохранение при отключении и сценарии контрактов с реальным клиентом против изолированных тестовых серверов.
## Архитектура и зависимости
Клиент полагается на внешние модули для своих API-контрактов:
- **Control-Plane API**: Потребляет версионированные DTO и клиенты из `github.com/endless-net/client-api/clientapi`. Это включает HTTP/recovery-контракты (v1), protobuf-сообщения и Connect-биндинги.
- **Публичная граница**: Единственный экспортируемый Go-пакет — `ipc/v2`, который обрабатывает контракты локального сервисного IPC v2.
## Сборка и релиз
Разработчики могут собрать клиент с помощью стандартных инструментов Go:
```bash
go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper
go test -short ./...
```
Релизы публикуются через GitHub Releases для Windows amd64 и Linux amd64, а также APT-пакеты для Debian/Ubuntu (amd64/arm64). CI-матрица обеспечивает совместимость с Ubuntu 22.04/24.04, Windows 2022/2025 и macOS 15.
## Документация
Подробные операционные руководства и технические спецификации доступны в каталоге `docs` репозитория:
- [`docs/ru/client-and-network.md`](docs/ru/client-and-network.md): Руководство по архитектуре и операциям на русском языке.
- [`docs/service-discovery.md`](docs/service-discovery.md): Детали потребления подписанного каталога сервисов.
- [`docs/application-runtime.md`](docs/application-runtime.md): Маршруты L3 и применение пакетов.
- [`docs/installation-tests.md`](docs/installation-tests.md): Критерии установки и приёмки.
- [`docs/testing-control-plane.md`](docs/testing-control-plane.md): Тестирование сценариев control-plane.
- [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml): Контракт локального сервисного IPC.
- [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md): Процессы восстановления владения.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.