প্রকল্প সম্পর্কে
anygo হলো একটি Go ল্যাঙ্গুয়েজ RPC ফ্রেমওয়ার্ক এবং বেস লাইব্রেরি যা নির্ভরশীলতা কমানোর জন্য ডিজাইন করা হয়েছে, এবং এর প্রতিটি ফাংশনাল মডিউল স্বতন্ত্রভাবে ব্যবহার করা সম্ভব। এর প্রধান বৈশিষ্ট্যগুলো হলো:
**RPC Client বৈশিষ্ট্য**:
- ডাউনস্ট্রিম সার্ভিস ম্যানেজার: কনফিগারেশন ফাইলের মাধ্যমে কানেকশন টাইমআউট, রিট্রাই, কানেকশন পুল, TLS এবং প্রক্সি ম্যানেজ করা সমর্থন করে। এতে বিল্ট-ইন DNS, File, Host+Port সার্ভিস ডিসকভারি পদ্ধতি এবং Random ও RoundRobin লোড ব্যালেন্সিং স্ট্র্যাটেজি রয়েছে।
- নেটওয়ার্ক কম্পোনেন্ট: ক্যাশ এবং ইন্টারসেপ্টর সুবিধাসম্পন্ন DNS রেজোলিউশন কম্পোনেন্ট এবং TCP ডায়াল কম্পোনেন্ট অন্তর্ভুক্ত।
- প্রোটোকল ইমপ্লিমেন্টেশন: একটি সাধারণ TCP RPC Client প্রদান করে, যেখানে Redis (Resp3) এবং HTTP/HTTPS প্রোটোকল ইমপ্লিমেন্ট করা হয়েছে।
- স্টোরেজ ক্লায়েন্ট: resp3 ভিত্তিক Redis Client এবং বিভিন্ন ডাটাবেস (MariaDB, MySQL, SQL Server, Sqlite, Postgres) সমর্থনকারী একটি লাইটওয়েট ORM db Client অন্তর্ভুক্ত।
**RPC Server বৈশিষ্ট্য**:
- মিডলওয়্যার এবং বিভিন্ন রাউটিং প্যারামিটার সমর্থনকারী একটি HTTP Router প্রদান করে।
- HTTP Session কম্পোনেন্ট এবং ক্যাপচা (captcha) জেনারেশন সুবিধা অন্তর্ভুক্ত।
**সাধারণ বেস লাইব্রেরি**:
- এনভায়রনমেন্ট এবং কনফিগারেশন: xattr অ্যাপ্লিকেশনের গ্লোবাল এনভায়রনমেন্ট ইনফরমেশন ম্যানেজ করতে ব্যবহৃত হয়; xcfg এনভায়রনমেন্ট ভেরিয়েবল এবং গ্লোবাল ইনফরমেশন থেকে JSON, XML ইত্যাদি ফরম্যাটে কনফিগারেশন পড়তে সমর্থন করে।
- ক্যাশ কম্পোনেন্ট (xcache): জেনেরিকস সমর্থন করে, বিল্ট-ইন ফাইল, মেমোরি (LRU/FIFO/LIFO), Redis এবং ডাটাবেস স্টোরেজ রয়েছে। এটি মাল্টি-লেভেল ক্যাশ কম্বিনেশন (Chains) এবং ট্রান্সপারেন্ট রিডিং টেমপ্লেট (Reader) সমর্থন করে।
- KV স্টোরেজ: Redis-এর মতো Key-Value API প্রদান করে, যা String, List, Hash, Set, ZSet ইত্যাদি টাইপ সমর্থন করে এবং এর আন্ডারলাইং স্টোরেজ ড্রাইভার নমনীয়ভাবে পরিবর্তন করা যায়।
- অন্যান্য টুলস: slog-এর উপর ভিত্তি করে তৈরি লগ লাইব্রেরি (xlog), জেনেরিক অ্যাসারশন লাইব্রেরি (xt) এবং আন্তর্জাতিকীকরণ (i18n) সাপোর্ট।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.