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

TinyChannels হলো একটি Rust লাইব্রেরি যা OpenHuman ফ্রেমওয়ার্কের জন্য চ্যানেল ও মেসেজিং প্রিমিটিভ সরবরাহ করে। এটি একটি পোর্টেবল চ্যানেল কনট্রাক্ট, কনফিগারেশন স্কিমা, কানেকশন মেটাডেটা, রুট হেল্পার এবং একটি ব্যাকএন্ড ডেলিগেশন লেয়ার প্রদান করে। এই ডিজাইন চ্যানেল সারফেসগুলোকে OpenHuman হার্নেসের সাথে সংযুক্ত করে, তবে এই ক্রেটকে মূল OpenHuman অ্যাপ্লিকেশন ক্রেটের সাথে কাপল করে না। রানটাইম সাইড ইফেক্টগুলো `ChannelBackend` ট্রেইটের মাধ্যমে প্লাগেবল। REST/JWT/কনফিগ স্টোরেজের প্রকৃত ব্যাকএন্ড ইমপ্লিমেন্টেশন OpenHuman-এর মালিকানাধীন, যেখানে এই ক্রেট চ্যানেল মেটাডেটা ভ্যালিডেট করে এবং সেই ট্রেইটের মাধ্যমে অপারেশন ডেলিগেট করে। লাইব্রেরিটিতে ঐচ্ছিক প্রোভাইডার ইমপ্লিমেন্টেশন রয়েছে যা Cargo ফিচারের মাধ্যমে স্পষ্টভাবে সক্রিয় করতে হবে: - **Email (শুধু পাঠানো)**: `lettre`-এর মাধ্যমে SMTP পাঠানো। - **Email**: `lettre`, `async-imap` এবং `mail-parser`-এর মাধ্যমে SMTP + IMAP। - **Lark/Feishu**: `axum` এবং `prost`-এর মাধ্যমে Webhook রিসিভার + Protobuf ডিকোডার। - **WhatsApp Web**: `whatsapp-rust`-এর মাধ্যমে মাল্টি-ডিভাইস সাপোর্ট। অন্যান্য প্রোভাইডার, যার মধ্যে Telegram, Discord, Slack, Signal, iMessage, IRC এবং Yuanbao/DingTalk রয়েছে, ডিফল্ট বিল্ডে অন্তর্ভুক্ত। ক্রেটটি crates.io-তে প্রকাশিত নয়; এটি একটি ভেন্ডরড পাথ ডিপেন্ডেন্সি বা সরাসরি Git ডিপেন্ডেন্সির মাধ্যমে ব্যবহৃত হয়। রিপোজিটরিটি কয়েকটি ক্রেট ও মডিউলে সংগঠিত: - `tinychannels-bus`: মূল কনট্রাক্ট, যার মধ্যে `Channel`, `ChannelMessage`, `SendMessage` ট্রেইট, কনফিগারেশন, ক্যাপাবিলিটি এবং কনভার্সেশন কী রয়েছে। - `tinychannels-runtime`: লিসেনার সুপারভিশন, বাউন্ডেড ডিসপ্যাচ লুপ, লগআউট-স্কোপড সেশন, হেলথ চেক এবং একটি কনসোল `CliChannel`। - `tinychannels-module`: লোডেবল TinyBus মডিউল। - `src/delivery/`: ডিউরেবল আউটবাউন্ড কিউ এবং ড্রাফট, থিংকিং ও ফিলার বাবলের জন্য একটি স্ট্রিমিং রিপ্লাই ড্রাইভার। - `src/remote/`: রিমোট কন্ট্রোল ক্যাপাবিলিটিসম্পন্ন প্রোভাইডারদের জন্য status, sessions, new এবং help কমান্ড ইমপ্লিমেন্ট করে। - `src/approvals/`: চ্যাট অ্যাপ্রুভাল ক্যাপাবিলিটিসম্পন্ন প্রোভাইডারদের জন্য ইন-চ্যাট অ্যাপ্রুভাল প্রম্পট পাঠায়। - `src/relay/`: রিলে ট্রান্সপোর্ট লুপ, WebSocket ডায়ালার এবং প্রসেস-ওয়াইড ট্রান্সপোর্ট রেজিস্ট্রি।