عن المشروع
TinyChannels هي مكتبة Rust توفر أساسيات القنوات والمراسلة لإطار OpenHuman. وهي تقدم عقد قناة محمول، ومخطط تكوين، وبيانات وصفية للاتصال، ومساعدات التوجيه، وطبقة تفويض للخلفية. يربط هذا التصميم أسطح القنوات بمنصات OpenHuman دون ربط هذه الحزمة بحزمة تطبيق OpenHuman الرئيسية.
الآثار الجانبية لوقت التشغيل قابلة للتوصيل من خلال سمة `ChannelBackend`. تمتلك OpenHuman تنفيذ الخلفية الفعلي لتخزين REST/JWT/التكوين، بينما تتحقق هذه الحزمة من البيانات الوصفية للقناة وتفوّض العمليات من خلال تلك السمة.
تتضمن المكتبة تنفيذات مزودين اختيارية يجب تمكينها صراحةً عبر ميزات Cargo:
- **البريد الإلكتروني (إرسال فقط)**: إرسال SMTP عبر `lettre`.
- **البريد الإلكتروني**: SMTP + IMAP عبر `lettre` و`async-imap` و`mail-parser`.
- **Lark/Feishu**: مستقبل Webhook + مفكك ترميز Protobuf عبر `axum` و`prost`.
- **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/`: ينفذ أوامر الحالة والجلسات والجديد والمساعدة للمزودين ذوي قدرة التحكم عن بُعد.
- `src/approvals/`: يرسل مطالبات الموافقة داخل الدردشة للمزودين ذوي قدرة موافقة الدردشة.
- `src/relay/`: حلقة نقل الترحيل، وطالب WebSocket، وسجل النقل على مستوى العملية.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.