このプロジェクトについて

# EndlessNet Client EndlessNet ClientはEndlessNetネットワークの中核インフラを提供し、Linux、macOS、Windows上で長時間稼働するエージェント、コマンドラインインターフェース(CLI)、サービス統合として機能します。署名済みサービスカタログの消費、L3アプリケーションルート管理、コネクタ検出、パケット適用など、重要なネットワーク操作を処理します。 ## 主な機能 - **クロスプラットフォーム対応**: Linux(Ubuntu/Debian)、Windows Server、macOSでのネイティブ動作。 - **セキュアネットワーキング**: 署名済みワイヤ契約とコントロールプレーンHTTP相互作用を実装し、データ整合性と認可されたアクセスを保証します。 - **サービス統合**: `ipc/v2`公開境界を介してローカルプロセス間通信(IPC)を管理し、厳格なトランスポートクライアントを公開しつつ、内部状態、アイデンティティ、STUN実装を非公開に保ちます。 - **CLIと自動化**: ユーザー操作用のCLIを提供し、特定のコマンドはセキュリティポリシーにより制限されます(例: ルート承認には管理コンソールが必要)。 - **堅牢なテスト**: インストールテスト、基本サービス受け入れ、切断永続性、分離テストサーバーに対する実クライアント契約シナリオを網羅する包括的なCIパイプラインを含みます。 ## アーキテクチャと依存関係 クライアントはAPI契約のために外部モジュールに依存しています: - **コントロールプレーンAPI**: `github.com/endless-net/client-api/clientapi`からバージョン管理されたDTOとクライアントを消費します。これにはHTTP/リカバリ契約(v1)、protobufメッセージ、Connectバインディングが含まれます。 - **公開境界**: 公開される唯一のGoパッケージは`ipc/v2`で、ローカルサービスIPC v2契約を処理します。 ## ビルドとリリース 開発者は標準的なGoツールを使用してクライアントをビルドできます: ```bash go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper go test -short ./... ``` リリースはWindows amd64とLinux amd64向けのGitHub Releases、およびDebian/Ubuntu(amd64/arm64)向けのAPTパッケージとして公開されます。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): コントロールプレーンシナリオテスト。 - [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml): ローカルサービスIPC契約。 - [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md): 所有権回復プロセス。