প্রকল্প সম্পর্কে

# 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 ./... ``` রিলিজ GitHub Releases-এর মাধ্যমে Windows amd64 এবং Linux amd64-এর জন্য প্রকাশিত হয়, সাথে 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): মালিকানা পুনরুদ্ধার প্রক্রিয়া।