تطبيق سطح المكتب (GUI)
يتضمن PRX-SD تطبيق سطح مكتب متعدد المنصات مبني بـ Tauri 2 (واجهة خلفية بـ Rust) وVue 3 (واجهة أمامية بـ TypeScript). يوفر واجهة المستخدم الرسومية واجهة مرئية لجميع ميزات المحرك الأساسية دون الحاجة إلى سطر الأوامر.
البنية المعمارية
+----------------------------------------------+
| PRX-SD Desktop App |
| |
| Vue 3 Frontend Tauri 2 Backend |
| (Vite + TypeScript) (Rust + IPC) |
| |
| +------------------+ +-----------------+ |
| | Dashboard |<->| scan_path() | |
| | File Scanner | | scan_directory()| |
| | Quarantine Mgmt | | get_config() | |
| | Config Editor | | save_config() | |
| | Signature Update | | update_sigs() | |
| | Alert History | | get_alerts() | |
| | Adblock Panel | | adblock_*() | |
| | Monitor Control | | start/stop() | |
| +------------------+ +-----------------+ |
| |
| System Tray Icon (32x32) |
+----------------------------------------------+تُعرِض الواجهة الخلفية لـ Tauri 18 أمر IPC يستدعيها واجهة Vue الأمامية للتفاعل مع محرك الفحص وقبو العزل وقاعدة بيانات التوقيعات ومحرك تصفية adblock. كل الأعمال الثقيلة (الفحص ومطابقة YARA والبحث عن الهاشات) تعمل بـ Rust؛ الواجهة الأمامية تتولى فقط العرض.
المميزات
لوحة التحكم في الوقت الفعلي
تُعرض لوحة التحكم حالة الأمان بلمحة سريعة:
- إجمالي الفحوصات المُجراة
- عدد التهديدات المكتشفة
- عدد الملفات المعزولة
- آخر وقت فحص
- حالة المراقبة (نشطة/غير نشطة)
- مخطط سجل الفحص (آخر 7 أيام)
- قائمة التهديدات الأخيرة مع المسارات وأسماء التهديدات ومستويات الخطورة
الفحص بالسحب والإفلات
اسحب الملفات أو المجلدات إلى نافذة التطبيق لبدء فحص فوري. تظهر النتائج في جدول قابل للفرز مع أعمدة للمسار ومستوى التهديد ونوع الكشف واسم التهديد ووقت الفحص.
إدارة العزل
عرض واسترداد وحذف الملفات المعزولة عبر واجهة مرئية:
- جدول قابل للفرز مع المعرف والمسار الأصلي واسم التهديد والتاريخ وحجم الملف
- استعادة بنقرة واحدة إلى الموقع الأصلي
- حذف نهائي بنقرة واحدة
- إحصاءات القبو (إجمالي الملفات، الحجم الإجمالي، الأقدم/الأحدث)
محرر الإعدادات
تحرير جميع إعدادات المحرك عبر واجهة قائمة على النماذج. تُكتب التغييرات في ~/.prx-sd/config.json وتدخل حيز التنفيذ عند الفحص التالي.
تحديثات التوقيعات
تشغيل تحديثات قاعدة بيانات التوقيعات من واجهة المستخدم الرسومية. تُنزِّل الواجهة الخلفية أحدث بيان، وتتحقق من تكامل SHA-256، وتثبِّت التحديث. يُعاد تهيئة المحرك تلقائياً بالتوقيعات الجديدة.
لوحة Adblock
إدارة حظر الإعلانات والنطاقات الضارة:
- تمكين/تعطيل حماية adblock
- مزامنة قوائم التصفية
- التحقق من النطاقات الفردية
- عرض سجل الحظر (آخر 50 إدخالاً)
- عرض إعداد القائمة والإحصاءات
علبة النظام
يوجد PRX-SD في علبة النظام مع أيقونة مستمرة، توفر وصولاً سريعاً إلى:
- فتح النافذة الرئيسية
- بدء/إيقاف المراقبة في الوقت الفعلي
- فحص حالة الـ daemon
- تشغيل فحص سريع
- الإغلاق من التطبيق
TIP
أيقونة علبة النظام مُهيَّأة بحجم 32×32 بكسل. على الشاشات عالية الكثافة، يستخدم Tauri تلقائياً النسخة [email protected].
البناء من المصدر
المتطلبات الأولية
- Rust الإصدار 1.85.0 أو أحدث
- Node.js 18+ مع npm
- تبعيات النظام (لينكس):
# Debian/Ubuntu
sudo apt install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
# Fedora
sudo dnf install -y webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-develوضع التطوير
تشغيل خادم تطوير الواجهة الأمامية والواجهة الخلفية لـ Tauri معاً مع إعادة التحميل الساخنة:
cd gui
npm install
npm run tauri devيبدأ هذا:
- خادم تطوير Vite على
http://localhost:1420 - الواجهة الخلفية لـ Tauri التي تحمِّل URL التطوير
بناء الإنتاج
بناء حزمة التطبيق القابلة للتوزيع:
cd gui
npm install
npm run tauri buildيختلف مخرج البناء حسب المنصة:
| المنصة | المخرج |
|---|---|
| لينكس | .deb، .AppImage، .rpm في src-tauri/target/release/bundle/ |
| macOS | .dmg، .app في src-tauri/target/release/bundle/ |
| ويندوز | .msi، .exe في src-tauri\target\release\bundle\ |
إعداد التطبيق
يُهيَّأ تطبيق Tauri عبر gui/src-tauri/tauri.conf.json:
{
"productName": "PRX-SD",
"version": "0.1.0",
"identifier": "com.prxsd.app",
"app": {
"windows": [
{
"title": "PRX-SD Antivirus",
"width": 1200,
"height": 800,
"minWidth": 900,
"minHeight": 600,
"center": true,
"resizable": true
}
],
"trayIcon": {
"id": "main-tray",
"iconPath": "icons/32x32.png",
"tooltip": "PRX-SD Antivirus"
}
}
}أوامر IPC
تُعرِض الواجهة الخلفية هذه أوامر Tauri للواجهة الأمامية:
| الأمر | الوصف |
|---|---|
scan_path | فحص ملف أو دليل، إرجاع النتائج |
scan_directory | فحص دليل بشكل متكرر |
start_monitor | التحقق من الصحة وبدء المراقبة في الوقت الفعلي |
stop_monitor | إيقاف daemon المراقبة |
get_quarantine_list | سرد جميع إدخالات العزل |
restore_quarantine | استعادة ملف معزول بالمعرف |
delete_quarantine | حذف إدخال عزل بالمعرف |
get_config | قراءة إعداد الفحص الحالي |
save_config | كتابة إعداد الفحص على القرص |
get_engine_info | الحصول على إصدار المحرك وعدد التوقيعات وقواعد YARA |
update_signatures | تنزيل وتثبيت أحدث التوقيعات |
get_alert_history | قراءة سجل التنبيهات من سجلات التدقيق |
get_dashboard_stats | إحصاءات لوحة التحكم المجمَّعة |
get_adblock_stats | الحصول على حالة adblock وعدد القواعد |
adblock_enable | تمكين حظر الإعلانات عبر ملف hosts |
adblock_disable | تعطيل حظر الإعلانات عبر ملف hosts |
adblock_sync | إعادة تنزيل قوائم التصفية |
adblock_check | التحقق مما إذا كان نطاق محظوراً |
get_adblock_log | قراءة إدخالات سجل الحظر الأخيرة |
دليل البيانات
تستخدم واجهة المستخدم الرسومية نفس دليل البيانات ~/.prx-sd/ كـ CLI. التغييرات في الإعدادات المُجراة في واجهة المستخدم الرسومية مرئية لأوامر sd والعكس صحيح.
WARNING
تشترك واجهة المستخدم الرسومية وواجهة CLI في نفس حالة محرك الفحص. إذا كان الـ daemon يعمل عبر sd daemon، يتحقق زر "بدء المراقبة" في واجهة المستخدم الرسومية من الاستعداد ولكن المراقبة الفعلية تتولاها عملية الـ daemon. تجنب تشغيل ماسح واجهة المستخدم الرسومية وماسح الـ daemon في نفس الوقت على نفس الملفات.
مكدس التقنيات
| المكوِّن | التقنية |
|---|---|
| الواجهة الخلفية | Tauri 2، Rust |
| الواجهة الأمامية | Vue 3، TypeScript، Vite 6 |
| IPC | بروتوكول أوامر Tauri |
| علبة النظام | إضافة علبة Tauri |
| أداة التجميع | Tauri bundler (deb/AppImage/dmg/msi) |
| روابط API | @tauri-apps/api الإصدار 2 |
الخطوات التالية
- تثبيت PRX-SD باتباع دليل التثبيت
- التعرف على CLI للتكتابة والأتمتة
- تهيئة المحرك عبر مرجع الإعدادات
- توسيع الكشف بـ إضافات WASM