عن المشروع
# Iris
Iris هو نظام مراسلة مبني على نموذج LLM أولاً، ومستقل عن المصدر، مصمم لتوحيد الرسائل من منصات متعددة—تيليجرام، SMS، البريد الإلكتروني، واتساب، إنستغرام، وغيرها—في واجهة برمجة تطبيقات واحدة قابلة للاستعلام. وهو ذاتي الاستضافة، مرخص بموجب MIT، ومبني بلغة Rust.
## الميزات الرئيسية
- **نموذج موحد**: يوحّد جميع الرسائل في هياكل `Message` و`Thread` و`Contact` متسقة.
- **استعلامات مستقلة عن المصدر**: الاستعلام عبر جميع المصادر دون معرفة أصلها (مثل "جميع المحادثات غير المقروءة").
- **تصميم LLM أولاً**: محسّن لاستهلاك الوكلاء مع دعم MCP، وJSON منظم، وإعلان القدرات.
- **توليد الكود**: أسطح CLI وHTTP وMCP مولّدة من تعريف API واحد، مما يضمن الاتساق.
- **ذاتي الاستضافة**: لا تبعيات سحابية؛ يعمل في أي مكان تعمل فيه Rust.
- **قابل للتوسيع**: إضافة مزود جديد يتطلب تنفيذ trait واحد.
## بدء سريع
```bash
cargo build
cargo run -- threads
cargo run -- messages <thread-id>
cargo run -- contacts
cargo run -- serve
```
## الاستضافة الذاتية مع Docker
الصور المنشورة متاحة في `ghcr.io/techgodhq/iris:<version>` (أو `:latest`). اضبط `IRIS_API_TOKEN` على سر عالي العشوائية للنشرات القابلة للوصول عبر الإنترنت؛ جميع نقاط نهاية HTTP باستثناء `GET /health` تتطلب مصادقة Bearer token. بدون رمز، يرفض الخادم عناوين الربط العامة أو wildcard.
مثال:
```bash
docker run --rm \
--name iris \
--publish 127.0.0.1:9876:9876 \
--volume iris-data:/data \
--env IRIS_ENABLED_PROVIDERS=telegram \
--env IRIS_TELEGRAM_BOT_TOKEN="${IRIS_TELEGRAM_BOT_TOKEN}" \
ghcr.io/techgodhq/iris:latest
```
## الإعداد
يدعم Iris ملفات TOML، ومتغيرات البيئة الأصلية، أو كليهما. تتجاوز قيم البيئة TOML، التي تتجاوز الافتراضيات. تشمل المتغيرات الرئيسية `IRIS_ENABLED_PROVIDERS` و`IRIS_TELEGRAM_BOT_TOKEN` وإعدادات `IRIS_EMAIL_*` المختلفة.
يتم دعم مثيلات متعددة لنوع مزود (مثل `email.ops-codefold`)، مع اصطلاحات تسمية مستقلة للإعداد ومتغيرات البيئة.
## البنية
Iris منظم كمساحة عمل مع crates:
- `iris-core`: نموذج المجال وtrait `MessageProvider` (بدون تبعيات I/O)
- `iris-providers`: تطبيقات المزود (تيليجرام، SMS، البريد الإلكتروني، إلخ)
- `iris-server`: خادم HTTP Axum (REST API)
- `iris-cli`: واجهة سطر الأوامر (clap)
- `iris-mcp`: سطح خادم MCP
- `iris-codegen`: توليد الكود للحفاظ على مزامنة CLI/HTTP/MCP
## إضافة مزود
1. أنشئ وحدة في `iris-providers/src/`.
2. نفّذ trait `MessageProvider`.
3. سجّله في بدء تشغيل الخادم/CLI.
## التطوير
```bash
cargo build --all-targets
cargo test --all-targets
cargo clippy --all-targets -- -D warnings
cargo fmt --all -- --check
```
تم إعداد خطافات ما قبل الالتزام عبر lefthook.
## الرخصة
MIT
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.