مكتبة التحقق الجغرافي والأمني السعودي الذكية – MKT KSA 🇸🇦 Smart Saudi Geolocation & Security Library
🔐 Rust | 🛰️ Smart Security | 🏙️ Smart City Ready | 📄 Apache 2.0 | Developed by Mansour Bin Khalid (KSA 🇸🇦)
- 🗺️ نبذة عن المشروع | Project Overview
- 📂 الملفات الأساسية | Main Files
- 🧩 الثوابت والدوال | Constants & Functions
- 🔑 المفاتيح ونقاط النهاية | Config & Endpoints
- 🧭 البنية المعمارية | Architecture
- 🛠️ أمثلة التحقق | Verification Examples
- ⚙️ وحدات المحرك الأساسية | Core Engine Modules
- 📡 وحدة تحليل الحساسات | Sensors Analyzer
- ☁️ وحدة الطقس والتحقق | Weather Validation
- 📜 وحدة السجل التاريخي | History Service
- 🔄 التحقق المتقاطع | Cross-Validation Engine
⚠️ تقرير التبعيات | Dependency Audit- ✅ نتائج الاختبار | Test Results
- 🔒 استقرار الإصدار الحالي | Current Release Stability
- ⬆️ خطة ترقية التبعيات بالكامل | Full Dependency Upgrade Plan
- ⭐ مزايا المشروع | Features
- 🧠 دليل المطور | Developer Guide
- 📈 ملخص الحالة الفنية | System State
- 📝 ملاحظات الإصدار v1.0.2 | Release Notes v1.0.2
- 📦 استخدام المكتبة من Rust | Using as a Rust library
- 🔗 الربط عبر C-ABI للغات الأخرى | Linking via C-ABI
MKT_KSA_Geolocation_Security مكتبة أمنية متقدمة للمدن الذكية، القطاعات السيادية، والشركات والمؤسسات التقنية. تعتمد على التحقق الجغرافي، تحليل السلوك، بصمة الجهاز، الذكاء الاصطناعي، وبنية معيارية جاهزة للتخصيص والتوسيع – مع توثيق ثنائي اللغة لكل وحدة ووظيفة.
MKT_KSA_Geolocation_Security A smart Rust-based security library for smart cities, enterprises, and critical sectors. It uses geolocation, behavioral analytics, device fingerprinting, and AI-driven modules, with modular design and bilingual documentation.
| اسم الملف | File Name | المسار | Path | الدور (عربي) | Role (English) |
|---|---|---|---|---|---|
| main.rs | main.rs | src/main.rs | src/main.rs | نقطة الدخول الرئيسية للتطبيق | Main entry point, initializes server & modules |
| db/models.rs | models.rs | src/db/models.rs | src/db/models.rs | هياكل بيانات قاعدة البيانات | DB models |
| db/crud.rs | crud.rs | src/db/crud.rs | src/db/crud.rs | دوال قاعدة البيانات (CRUD) | DB CRUD functions |
| db/mod.rs | mod.rs | src/db/mod.rs | src/db/mod.rs | فهرس وحدة قاعدة البيانات | DB module index |
| security/ratelimit.rs | ratelimit.rs | src/security/ratelimit.rs | src/security/ratelimit.rs | وحدة تحديد المعدل (DoS حماية) | Rate limiting module (DoS protection) |
| security/input_validator.rs | input_validator.rs | src/security/input_validator.rs | src/security/input_validator.rs | أدوات التحقق للمدخلات | Input validation tools |
| security/policy.rs | policy.rs | src/security/policy.rs | src/security/policy.rs | محرك السياسات الأمنية | Policy engine |
| security/jwt.rs | jwt.rs | src/security/jwt.rs | src/security/jwt.rs | إدارة رموز JWT | JWT management |
| security/mod.rs | mod.rs | src/security/mod.rs | src/security/mod.rs | فهرس وحدة الأمان | Security module index |
| core/geo_resolver.rs | geo_resolver.rs | src/core/geo_resolver.rs | src/core/geo_resolver.rs | محرك الموقع الجغرافي | Geolocation resolver engine |
| core/behavior_bio.rs | behavior_bio.rs | src/core/behavior_bio.rs | src/core/behavior_bio.rs | محرك التحليل السلوكي | Behavioral analytics engine |
| core/device_fp.rs | device_fp.rs | src/core/device_fp.rs | src/core/device_fp.rs | بصمة الجهاز | Device fingerprinting |
| core/network_analyzer.rs | network_analyzer.rs | src/core/network_analyzer.rs | src/core/network_analyzer.rs | تحليل الشبكة وكشف التخفي | Network analysis & concealment detection |
| core/sensors_analyzer.rs | sensors_analyzer.rs | src/core/sensors_analyzer.rs | src/core/sensors_analyzer.rs | تحليل بيانات الحساسات | Sensors data analysis engine |
| core/weather_val.rs | weather_val.rs | src/core/weather_val.rs | src/core/weather_val.rs | تدقيق بيانات الطقس | Weather validation engine |
| core/cross_location.rs | cross_location.rs | src/core/cross_location.rs | src/core/cross_location.rs | محرك التحقق المتقاطع | Cross-validation engine |
| core/history.rs | history.rs | src/core/history.rs | src/core/history.rs | إدارة وتحليل السجل التاريخي | History management & anomaly detection |
| core/mod.rs | mod.rs | src/core/mod.rs | src/core/mod.rs | فهرس وحدة المحرك | Core engine module index |
| api/auth.rs | auth.rs | src/api/auth.rs | src/api/auth.rs | نقاط نهاية المصادقة | Auth endpoints |
| api/alerts.rs | alerts.rs | src/api/alerts.rs | src/api/alerts.rs | نقاط نهاية التنبيهات الأمنية | Security alerts endpoints |
| api/geo.rs | geo.rs | src/api/geo.rs | src/api/geo.rs | نقاط نهاية الموقع الجغرافي | Geolocation endpoints |
| api/device.rs | device.rs | src/api/device.rs | src/api/device.rs | نقاط نهاية الجهاز | Device endpoints |
| api/behavior.rs | behavior.rs | src/api/behavior.rs | src/api/behavior.rs | نقاط نهاية التحليل السلوكي | Behavior analytics endpoints |
| api/network.rs | network.rs | src/api/network.rs | src/api/network.rs | نقاط نهاية تحليل الشبكة | Network analysis endpoints |
| api/sensors.rs | sensors.rs | src/api/sensors.rs | src/api/sensors.rs | نقاط نهاية الحساسات | Sensors endpoints |
| api/weather.rs | weather.rs | src/api/weather.rs | src/api/weather.rs | نقاط نهاية الطقس | Weather endpoints |
| api/dashboard.rs | dashboard.rs | src/api/dashboard.rs | src/api/dashboard.rs | لوحة التحكم | Dashboard endpoints |
| api/smart_access.rs | smart_access.rs | src/api/smart_access.rs | src/api/smart_access.rs | نقطة وصول التحقق الذكي | Smart access endpoint |
| api/mod.rs | mod.rs | src/api/mod.rs | src/api/mod.rs | فهرس وحدة API | API module index |
| utils/mod.rs | mod.rs | src/utils/mod.rs | src/utils/mod.rs | فهرس وحدة الأدوات المساعدة | Utils module index |
| utils/helpers.rs | helpers.rs | src/utils/helpers.rs | src/utils/helpers.rs | دوال مساعدة عامة | General helper functions |
| utils/logger.rs | logger.rs | src/utils/logger.rs | src/utils/logger.rs | وحدة التسجيل | Logger module |
| utils/cache.rs | cache.rs | src/utils/cache.rs | src/utils/cache.rs | وحدة التخزين المؤقت | Cache module |
| Cargo.toml | Cargo.toml | Cargo.toml | Cargo.toml | ملف التبعيات وإعداد المشروع | Dependency management file |
| اسم الثابت | Constant Name | القيمة الافتراضية | Default Value | مكان التعريف | Defined In |
|---|---|---|---|---|---|
| MAX_ACCURACY_THRESHOLD | MAX_ACCURACY_THRESHOLD | 50.0 | 50.0 | src/core/geo_resolver.rs | geo_resolver.rs |
| MIN_SIGNAL_STRENGTH | MIN_SIGNAL_STRENGTH | 30 | 30 | src/core/geo_resolver.rs | geo_resolver.rs |
| QUANTUM_SECURITY_LEVEL | QUANTUM_SECURITY_LEVEL | 90 | 90 | src/core/geo_resolver.rs | geo_resolver.rs |
| MAX_HISTORY_SIZE | MAX_HISTORY_SIZE | 100 | 100 | src/core/geo_resolver.rs | geo_resolver.rs |
| اسم الدالة/الهيكل | Function/Struct Name | التوقيع / Signature | مكان التعريف / Defined In | الوصف (عربي) | Description (English) |
|---|---|---|---|---|---|
| get_user_by_id | get_user_by_id | async fn get_user_by_id(pool, user_id) | src/db/crud.rs | جلب مستخدم من قاعدة البيانات | Fetch user from DB |
| verify_smart_access | verify_smart_access | async fn verify_smart_access(...) | src/core/composite_verification.rs | تحقق أمني مركب ذكي | Smart composite security check |
| process | process | async fn process(input: BehaviorInput) | src/core/behavior_bio.rs | تحليل سلوك المستخدم/الجهاز | Analyze user/device behavior |
| generate_fingerprint | generate_fingerprint | async fn generate_fingerprint(os, device, env) | src/core/device_fp.rs | توليد بصمة جهاز تكيفية | Generate adaptive device fingerprint |
| analyze | analyze | async fn analyze(provider: &dyn NetworkInfoProvider) | src/core/network_analyzer.rs | تحليل الشبكة وكشف أدوات التخفي | Analyze network & detect concealment tools |
| fetch_and_validate | fetch_and_validate | async fn fetch_and_validate(lat, lng) | src/core/weather_val.rs | جلب وتدقيق بيانات الطقس | Fetch & validate weather data |
| validate | validate | async fn validate(input: CrossValidationInput) | src/core/cross_location.rs | تحقق متقاطع شامل | Full cross-validation |
| log_event | log_event | async fn log_event(event: &HistoryEvent) | src/core/history.rs | تسجيل حدث تاريخي | Log historical event |
| detect_timeline_anomalies | detect_timeline_anomalies | async fn detect_timeline_anomalies(entity_id, window) | src/core/history.rs | كشف شذوذ زمني في الأحداث | Detect timeline anomalies |
| check | check | async fn check(ip) | src/security/ratelimit.rs | تحقق من معدل الطلبات | Rate limiting check |
| sign_location | sign_location | fn sign_location(location: &GeoLocation) | src/core/geo_resolver.rs | توقيع بيانات الموقع رقمياً | Digitally sign location data |
| verify_signature | verify_signature | fn verify_signature(location: &GeoLocation) | src/core/geo_resolver.rs | تحقق من صحة التوقيع الرقمي | Verify digital signature |
| config | config | fn config(cfg: &mut ServiceConfig) | src/api/mod.rs | تسجيل جميع مسارات API | Register all API routes |
| اسم الدالة | Function Name | التوقيع / Signature | مكان التعريف / Defined In | الوصف (عربي) | Description (English) |
|---|---|---|---|---|---|
| sign_hmac_sha512 | sign_hmac_sha512 | fn sign_hmac_sha512(data: &[u8], key: &SecureBytes) -> Result<Vec, SigningError> | src/security/signing.rs | توقيع HMAC-SHA512 لبايتات البيانات | HMAC-SHA512 signature over bytes |
| verify_hmac_sha512 | verify_hmac_sha512 | fn verify_hmac_sha512(data: &[u8], sig: &[u8], key: &SecureBytes) -> bool | src/security/signing.rs | تحقق HMAC-SHA512 | Verifies HMAC-SHA512 |
| sign_hmac_sha384 | sign_hmac_sha384 | fn sign_hmac_sha384(data: &[u8], key: &SecureBytes) -> Result<Vec, SigningError> | src/security/signing.rs | توقيع HMAC-SHA384 | HMAC-SHA384 signature |
| verify_hmac_sha384 | verify_hmac_sha384 | fn verify_hmac_sha384(data: &[u8], sig: &[u8], key: &SecureBytes) -> bool | src/security/signing.rs | تحقق HMAC-SHA384 | Verifies HMAC-SHA384 |
| sign_struct_excluding_field | sign_struct_excluding_field | fn sign_struct_excluding_field<T: Serialize>(value: &T, exclude_field: &str, key: &SecureBytes) -> Result<Vec, SigningError> | src/security/signing.rs | توقيع هيكل متسلسل مع استثناء حقل | Sign serializable struct excluding one field |
| verify_struct_excluding_field | verify_struct_excluding_field | fn verify_struct_excluding_field<T: Serialize>(value: &T, exclude_field: &str, sig: &[u8], key: &SecureBytes) -> bool | src/security/signing.rs | تحقق من هيكل متسلسل مع استثناء حقل | Verify serializable struct excluding one field |
| اسم الدالة | Function Name | التوقيع / Signature | مكان التعريف / Defined In | الوصف (عربي) | Description (English) |
|---|---|---|---|---|---|
| time_delta_secs | time_delta_secs | fn time_delta_secs(start: DateTime, end: DateTime) -> f64 | src/utils/precision.rs | فرق الزمن بالثواني (حماية من القيم السالبة) | Time delta in seconds (with negative guard) |
| time_delta_secs_high_res | time_delta_secs_high_res | fn time_delta_secs_high_res(start: DateTime, end: DateTime) -> f64 | src/utils/precision.rs | فرق زمن عالي الدقة (ثوانٍ + نانوثوانٍ) | High-resolution time delta (secs + nanos) |
| avg_f32 | avg_f32 | fn avg_f32(values: &[f32]) -> f32 | src/utils/precision.rs | متوسط f32 بتجميع داخلي f64 | f32 average using internal f64 accumulation |
| haversine_km | haversine_km | fn haversine_km(a: (f64, f64), b: (f64, f64)) -> f64 | src/utils/precision.rs | مسافة هافرسين بالكيلومترات | Haversine distance in kilometers |
| speed_kmh | speed_kmh | fn speed_kmh(distance_km: f64, seconds: f64) -> f64 | src/utils/precision.rs | سرعة كم/س مع حماية القسمة على صفر | Speed (km/h) with division-by-zero guard |
| weighted_sum_f64 | weighted_sum_f64 | fn weighted_sum_f64(values: &[f64], weights: &[f64]) -> Option | src/utils/precision.rs | مجموع موزون f64 (يرجع None عند عدم التطابق) | Weighted sum (f64), None if lengths mismatch |
| rate_of_change_f64 | rate_of_change_f64 | fn rate_of_change_f64(value_delta: f64, seconds: f64) -> f64 | src/utils/precision.rs | معدل التغير (قيمة/ثانية) مع حماية القسمة | Rate of change per second with zero-division guard |
| اسم الواجهة | Trait Name | التوقيع / Signature | مكان التعريف / Defined In | الوصف (عربي) | Description (English) |
|---|---|---|---|---|---|
| AiModel | AiModel | trait AiModel: detect_fraud, analyze_movement, ... | src/core/geo_resolver.rs | واجهة نماذج الذكاء الاصطناعي للموقع | AI models for geolocation |
| Blockchain | Blockchain | trait Blockchain: store_location, verify_location, ... | src/core/geo_resolver.rs | واجهة تكامل البلوكشين | Blockchain integration |
| BehavioralModel | BehavioralModel | trait BehavioralModel: analyze | src/core/behavior_bio.rs | واجهة نماذج تحليل السلوك | Behavioral analysis models |
| AnomalyDetector | AnomalyDetector | trait AnomalyDetector: detect | src/core/behavior_bio.rs | واجهة كشف الشذوذ السلوكي | Behavioral anomaly detection |
| SecurityMonitor | SecurityMonitor | trait SecurityMonitor: scan_environment, ... | src/core/device_fp.rs | مراقبة أمان الجهاز | Device security monitoring |
| QuantumEngine | QuantumEngine | trait QuantumEngine: get_secure_key, ... | src/core/device_fp.rs | محرك التشفير ما بعد الكم | Post-quantum crypto engine |
| AiProcessor | AiProcessor | trait AiProcessor: generate_ai_signature | src/core/device_fp.rs | معالجة الذكاء الاصطناعي للبصمة | AI processor for fingerprinting |
| NetworkInfoProvider | NetworkInfoProvider | trait NetworkInfoProvider: get_connection_type, ... | src/core/network_analyzer.rs | مزود معلومات الشبكة | Network info provider |
| AiNetworkAnalyzer | AiNetworkAnalyzer | trait AiNetworkAnalyzer: analyze | src/core/network_analyzer.rs | محلل الشبكة بالذكاء الاصطناعي | AI network analyzer |
| SensorAnomalyDetector | SensorAnomalyDetector | trait SensorAnomalyDetector: analyze | src/core/sensors_analyzer.rs | كشف شذوذ بيانات الحساسات | Sensor anomaly detection |
| WeatherProvider | WeatherProvider | trait WeatherProvider: get_weather, ... | src/core/weather_val.rs | مزود بيانات الطقس | Weather data provider |
| ScoringStrategy | ScoringStrategy | trait ScoringStrategy: calculate_score | src/core/cross_location.rs | استراتيجية حساب درجة الثقة | Trust scoring strategy |
| اسم المفتاح | Key Name | الدور | Role | مثال | Example |
|---|---|---|---|---|---|
| API_KEY | API_KEY | مفتاح المصادقة الرئيسي | Main authentication key | API_KEY=your_secret_key | |
| JWT_SECRET | JWT_SECRET | سر توقيع/تحقق JWT | JWT signing/verification secret | JWT_SECRET=32+_chars_secret | |
| DATABASE_URL | DATABASE_URL | رابط قاعدة البيانات | DB connection string | DATABASE_URL=mysql://... | |
| LOG_LEVEL | LOG_LEVEL | مستوى السجلات | Logging verbosity | LOG_LEVEL=debug | |
| GEO_PROVIDER | GEO_PROVIDER | مزود الموقع (اختياري) | Geolocation provider | GEO_PROVIDER=ipapi |
| المسار | Path | نوع الطلب | Method | الدور (عربي) | Role (English) | التعريف / Defined In |
|---|---|---|---|---|---|---|
| /api/auth/login | /api/auth/login | POST | POST | تسجيل دخول | User login | src/api/auth.rs |
| /api/auth/user | /api/auth/user | GET | GET | جلب بيانات مستخدم | Fetch user data | src/api/auth.rs |
| /api/alerts/trigger | /api/alerts/trigger | POST | POST | إطلاق تنبيه أمني | Trigger security alert | src/api/alerts.rs |
| /api/geo/resolve | /api/geo/resolve | POST | POST | تحليل الموقع الجغرافي | Geolocation resolve | src/api/geo.rs |
| /api/device/resolve | /api/device/resolve | POST | POST | تحليل/تسجيل الجهاز | Device resolve/register | src/api/device.rs |
| /api/behavior/analyze | /api/behavior/analyze | POST | POST | تحليل السلوك | Behavior analysis | src/api/behavior.rs |
| /api/network/analyze | /api/network/analyze | POST | POST | تحليل الشبكة | Network analysis | src/api/network.rs |
| /api/sensors/analyze | /api/sensors/analyze | POST | POST | تحليل بيانات الحساسات | Sensors data analysis | src/api/sensors.rs |
| /api/weather/summary | /api/weather/summary | GET | GET | ملخص بيانات الطقس | Weather summary | src/api/weather.rs |
| /api/dashboard | /api/dashboard | GET | GET | ملخص لوحة التحكم | Dashboard summary | src/api/dashboard.rs |
| /api/smart_access | /api/smart_access | POST | POST | تحقق وصول ذكي مركب | Smart composite access check | src/api/smart_access.rs |
graph TD
A[main.rs 🧩\nEntry] --> B[API Layer 🌐]
A --> C[Core Engines 🧠]
A --> D[DB Layer 🗄️]
B -->|Endpoints| E[🔓 /auth, /alerts, /users, ...]
C --> F[GeoResolver 🌍]
C --> G[BehaviorEngine 🧠]
C --> H[DeviceFingerprint 📱]
C --> I[NetworkAnalyzer 🌐🔍]
C --> J[SensorsAnalyzer 📡]
C --> K[WeatherEngine ☁️]
C --> L[CrossValidator 🔄]
C --> M[CompositeVerifier 🛡️]
C --> N[HistoryService 🕓]
D --> O[CRUD + Models ⚙️]
B --> P[Security Layer 🔐]
P --> Q[InputValidator 📥]
P --> R[JWT Manager 🔑]
P --> S[Policy Engine ⚖️]
P --> T[RateLimiter 🚦]
🎯 الوصف: يوضح المخطط تداخل الوحدات الرئيسة (API، المحرك الأساسي، قاعدة البيانات، طبقة الأمان) مع إبراز المحركات الجديدة (تحليل الحساسات، الطقس، التحقق المتقاطع، السجل التاريخي) وصولاً لطبقة التحقق الأمني المركب الذكي.
Description: The diagram shows the interaction of main units (API, core engine, DB, security layer) highlighting new engines (sensors, weather, cross-validation, history) up to the smart composite security layer.
let allowed_zones = vec!["Riyadh".to_string(), "Jeddah".to_string()];
let allowed_hours = Some((6, 18));
let access_granted = composite_verifier.verify_smart_access(
geo_input, // (Option<IpAddr>, Option<(f64, f64, u8, f64)>)
behavior_input, // BehaviorInput
(os, device, env), // (&str, &str, &str)
&allowed_zones,
allowed_hours,
).await?;
if !access_granted {
// رفض الوصول أو تسجيل محاولة مشبوهة | Deny access or log suspicious attempt
}let geo_location = geo_resolver.resolve(Some(ip), Some(gps), None, None, None, None, None).await?;
if let Some(city) = &geo_location.city {
if allowed_zones.contains(city) {
// تحقق جغرافي ناجح | Geo verification successful
} else {
// رفض الوصول بسبب المنطقة | Access denied due to location
}
}let behavior_result = behavior_engine.process(behavior_input).await?;
if behavior_result.risk_level as u8 < 3 {
// السلوك طبيعي | Low risk behavior
} else {
// السلوك مشبوه | Medium or high risk behavior
}let device_fp = device_fp_engine.generate_fingerprint(os, device, env).await?;
if device_fp.security_level >= 5 {
// الجهاز موثوق | Device is trusted
} else {
// الجهاز غير موثوق | Device is not trusted
}let role_row: Option<Row> = mysql_async::prelude::Queryable::exec_first(
&mut conn, "SELECT role FROM user_roles WHERE user_id = ? AND role = ?",
(user_id.to_string(), "admin"),
).await?;
if role_row.is_some() {
// للمستخدم الصلاحية المطلوبة | User has required role
} else {
// ليس لديه الصلاحية | User lacks required role
}- الوصف: إدارة وتخزين وتحليل الأحداث والسلوكيات التاريخية للمستخدمين والأجهزة، مع دعم كشف الشذوذ الزمني والتكامل مع قاعدة البيانات.
- Description: Manages, stores, and analyzes historical events and behaviors for users/devices, with anomaly detection and DB integration.
- أهم الدوال: log_event, get_entity_history, detect_timeline_anomalies
- الوصف: محرك تنسيق متقدم يجمع نتائج محركات التحقق (الموقع، السلوك، الجهاز...) ليصدر حكمًا نهائيًا موثوقًا وموقعًا رقمياً.
- Description: Advanced orchestrator combining results from verification engines (geo, behavior, device, etc.) to issue a final, signed verdict.
- أهم الدوال: validate, sign_verdict
- الوصف: تحليل بيانات الحساسات (مثل التسارع، الجيروسكوب) للكشف عن الشذوذ أو التلاعب، مع إصدار شهادة تحليل موقعة رقمياً.
- Description: Analyzes sensor data (e.g., accelerometer, gyroscope) for anomalies/tampering, issuing a digitally signed analysis certificate.
- أهم الدوال: analyze (SensorsAnalyzerEngine)
- الوصف: تجميع وتدقيق بيانات الطقس من مزودين متعددين، مع مقارنة النتائج وتقديم بيانات موحدة وموثوقة.
- Description: Aggregates and validates weather data from multiple providers, comparing results and providing unified, reliable data.
- أهم الدوال: fetch_and_validate (WeatherEngine)
| التبعية | Dependency | النوع | Type | مباشر؟ | Direct? | غير مباشر؟ | Indirect? | ملاحظات أمنية/تصنيف | Security/Category Notes |
|---|---|---|---|---|---|---|---|---|---|
| actix-web | actix-web | خارجي | External | نعم | Yes | لا | No | إطار ويب رئيسي (Web) | Main web framework |
| actix-rt | actix-rt | خارجي | External | نعم | Yes | لا | No | تشغيل غير متزامن | Async runtime |
| ammonia | ammonia | خارجي | External | نعم | Yes | لا | No | تعقيم HTML | HTML sanitization |
| anyhow | anyhow | خارجي | External | نعم | Yes | لا | No | إدارة الأخطاء | Error handling |
| async-trait | async-trait | خارجي | External | نعم | Yes | لا | No | دعم async للـtraits | Async trait support |
| config | config | خارجي | External | نعم | Yes | لا | No | إدارة الإعدادات | Config management |
| futures | futures | خارجي | External | نعم | Yes | لا | No | أدوات البرمجة غير المتزامنة | Async utilities |
| log | log | خارجي | External | نعم | Yes | لا | No | تسجيل | Logging |
| mysql_async | mysql_async | خارجي | External | نعم | Yes | لا | No | قاعدة بيانات | Database (MySQL) |
| tokio | tokio | خارجي | External | نعم | Yes | لا | No | تشغيل غير متزامن | Async runtime |
| uuid | uuid | خارجي | External | نعم | Yes | لا | No | معرفات فريدة | UUIDs |
| aes-gcm | aes-gcm | خارجي | External | نعم | Yes | لا | No | تشفير متقدم | Advanced encryption |
| secrecy | secrecy | خارجي | External | نعم | Yes | لا | No | إدارة أسرار آمنة | Secure secret handling |
| zeroize | zeroize | خارجي | External | نعم | Yes | لا | No | مسح آمن للذاكرة | Secure memory zeroing |
| hex | hex | خارجي | External | نعم | Yes | لا | No | تحويلات هيكس | Hex encoding/decoding |
| hmac | hmac | خارجي | External | نعم | Yes | لا | No | توقيع HMAC | HMAC signatures |
| sha2 | sha2 | خارجي | External | نعم | Yes | لا | No | تجزئة SHA2 | SHA2 hashing |
| blake3 | blake3 | خارجي | External | نعم | Yes | لا | No | تجزئة BLAKE3 | BLAKE3 hashing |
| base64 | base64 | خارجي | External | نعم | Yes | لا | No | ترميز Base64 | Base64 encoding |
| jsonwebtoken | jsonwebtoken | خارجي | External | نعم | Yes | لا | No | JWT | JWT tokens |
| pqcrypto-mlkem | pqcrypto-mlkem | خارجي | External | نعم | Yes | لا | No | تشفير ما بعد الكم | Post-quantum crypto |
| unicode-normalization | unicode-normalization | خارجي | External | نعم | Yes | لا | No | تطبيع يونيكود | Unicode normalization |
| validator | validator | خارجي | External | نعم | Yes | لا | No | تحقق من المدخلات | Input validation |
| regex | regex | خارجي | External | نعم | Yes | لا | No | تعبيرات منتظمة | Regex |
| getrandom | getrandom | خارجي | External | لا | No | نعم | Yes | توليد أرقام عشوائية (عبر rand::OsRng) | Random number generation (via rand::OsRng) |
| lru | lru | خارجي | External | نعم | Yes | لا | No | كاش LRU | LRU cache |
| rayon | rayon | خارجي | External | نعم | Yes | لا | No | معالجة متوازية | Parallel processing |
| once_cell | once_cell | خارجي | External | نعم | Yes | لا | No | تهيئة لمرة واحدة | One-time initialization |
| lazy_static | lazy_static | خارجي | External | نعم | Yes | لا | No | ثوابت ساكنة | Static constants |
| cfg-if | cfg-if | خارجي | External | نعم | Yes | لا | No | تفعيل مشروط | Conditional compilation |
| rand | rand | خارجي | External | نعم | Yes | لا | No | توليد أرقام عشوائية | Random number generation |
| chrono | chrono | خارجي | External | نعم | Yes | لا | No | تواريخ وأوقات | Date/time handling |
| serde_json | serde_json | خارجي | External | نعم | Yes | لا | No | JSON | JSON |
| reqwest | reqwest | خارجي | External | نعم | Yes | لا | No | طلبات HTTP | HTTP requests (Rustls) |
| serde | serde | خارجي | External | نعم | Yes | لا | No | تسلسل/إلغاء تسلسل | Serialization |
| serde_derive | serde_derive | خارجي | External | نعم | Yes | لا | No | اشتقاق Serde | Serde derive |
| thiserror | thiserror | خارجي | External | نعم | Yes | لا | No | أخطاء مخصصة | Custom errors |
| maxminddb | maxminddb | خارجي | External | نعم | Yes | لا | No | قاعدة بيانات GeoIP | GeoIP database |
| pqcrypto-traits | pqcrypto-traits | خارجي | External | نعم | Yes | لا | No | واجهات تشفير ما بعد الكم | Post-quantum crypto traits |
| proptest | proptest | dev | Dev | نعم | Yes | لا | No | اختبارات ملكية | Property-based testing |
| rstest | rstest | dev | Dev | نعم | Yes | لا | No | اختبارات سيناريو | Scenario-based testing |
| assert-json-diff | assert-json-diff | dev | Dev | نعم | Yes | لا | No | مقارنة JSON | JSON diff assertions |
ملاحظات الاستقرار (تحديث):
- تاريخ التحديث: 14 أغسطس 2025
- تم ضبط تبعية
anyhowبدقة إلى1.0.99. - ترقية التبعيات:
base64 0.22.1,lru 0.16.0,maxminddb 0.26.0,reqwest 0.12.22,thiserror 2.0.12,uuid 1.18.0. - إضافة
categoriesوkeywordsفيCargo.toml. - استخدام
JWT_SECRETكسرّ JWT بدلاً من قيمة ثابتة. - لا تغييرات وظيفية؛ جميع الاختبارات ما زالت تمر.
Security Notes:
- All dependencies are carefully selected, with no reliance on OpenSSL (all crypto is Rust-native or Rustls).
- It is recommended to run
cargo auditandcargo updateregularly.
running 35 tests
... all tests passed ...
test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s- ✅ كل الاختبارات نجحت (35 اختبارًا).
- الأداة/البيئة: Stable Rust 1.89.0 (Windows MSVC)، مع تهيئة
$env:CARGO_HOMEو$env:RUSTUP_HOME. - البناء:
cargo checkناجح. - الاختبارات:
cargo testناجحة بالكامل (35/35) بعد جعل اختبار غير حتمي حتمياً عبر طابع زمني ثابت، دون تغيير أي منطق. - التنسيق:
cargo fmt --checkنظيف. - اللينتر:
cargo clippyيحتوي تحذيرات غير حرجة فقط (imports/variables غير مستخدمة واقتراحات تحسين)، لا تغيّر السلوك. - الأمان:
cargo auditلا ثغرات معروفة. - الملاحظة التشغيلية: وحدة
RateLimiterموجودة وغير مفعّلة افتراضياً لحين قرار لاحق.
- التبعيات ذات الإصدارات الأحدث المتاحة:
base64 (0.22),getrandom (0.3),lru (0.16),maxminddb (0.26),rand (0.9),reqwest (0.12),rstest (0.26),secrecy (0.10),thiserror (2).
- بدون كسر توافق عام: الترقية على مراحل، مع بناء واختبارات و
audit/clippy/fmtبعد كل مرحلة. - عدم تغيير واجهات المكتبة العامة في هذا المسار؛ أي تغييرات كاسرة تؤجل لإصدار رئيسي.
- thiserror 2 → تحقق وبناء واختبارات.
- secrecy 0.10 → تحقق تكامل مع
zeroizeوواجهات الأسرار. - reqwest 0.12 + rustls متوافق → مراجعة API البسيطة إن وجدت.
- maxminddb 0.26 → تحديثات API طفيفة إن لزم، مع اختبار GeoIP.
- rand 0.9 + getrandom 0.3 → مراجعة نقاط التوليد العشوائي.
- base64 0.22 → تحديث استدعاءات الترميز/الفك إن تغيّر API.
- lru 0.16 → مراجعة الإنشاء والسمات.
- rstest 0.26 (dev) → تحديث وسوم الاختبار إن لزم.
- تشغيل CI كامل:
check,test,fmt,clippy,auditفي كل مرحلة. - توثيق نتائج كل مرحلة ضمن ملاحظات الإصدار قبل الدمج.
- هدف المكتبة:
- تقديم منصة تحقق أمني ذكية متكاملة للمدن الذكية، الجهات السيادية، المؤسسات المالية، وشركات التقنية، مع دعم كامل للتخصيص والتكامل.
- تم تصميمها لتكون معيارًا للأمان الجغرافي والسلوكي في البيئات عالية الحساسية، مع قابلية التوسع والدمج في أي نظام حديث.
- قوة الأمان:
- تعتمد المكتبة على بنية معيارية متعددة الطبقات، تجمع بين التحقق الجغرافي، التحليل السلوكي، بصمة الجهاز، تحليل الشبكة، كشف التلاعب، التحقق المتقاطع، وتدقيق الطقس والحساسات.
- جميع العمليات مدعومة بتشفير متقدم (AES-GCM, HMAC, Post-Quantum)، إدارة أسرار آمنة (secrecy, zeroize)، وتوقيعات رقمية.
- لا تعتمد على OpenSSL، وتستخدم فقط مكتبات Rust آمنة وحديثة.
- تدعم سياسات المدن الذكية، كشف أدوات التخفي (VPN/Proxy/Tor)، وتوفر سجل تاريخي وتحليل شذوذ زمني.
- 🔐 تحقق مركب متعدد المصادر: (جغرافي، سلوكي، جهاز، شبكة، حساسات، طقس).
- 🧠 تكامل AI وتكيف ذكي: دعم الذكاء الاصطناعي وخوارزميات الأمن التكيفية.
- 🛰️ كشف التخفي المتقدم: دعم VPN/Proxy/Tor وطرق كشف متطورة.
- 🏙️ سياسات المدن الذكية والمؤسسات الكبرى: دعم مناطق/أذونات/أوقات متقدمة.
- ⚡ بنية معيارية ومرنة: قابلة للحقن والتخصيص لأي محرك أو منطق أمان.
- 📄 توثيق ثنائي اللغة كامل: كل جزء موثق عربي/إنجليزي.
- 🔑 إدارة أسرار وتشفير ما بعد الكم: دعم secrecy وPost-Quantum crypto.
- 🚦 تحديد معدل الطلبات Rate Limiting: وحدة RateLimiter جاهزة.
- 🔌 سهولة التكامل مع أي تطبيق أو خدمة: REST API أو Rust Traits مباشرة.
- 🕓 سجل تاريخي وتحليل شذوذ زمني: وحدة history متقدمة.
- ☁️ تدقيق بيانات الطقس: وحدة weather للتحقق من الظروف البيئية.
- 📡 تحليل بيانات الحساسات: دعم سيناريوهات الأجهزة الذكية وإنترنت الأشياء.
- الجهات السيادية والحكومية:
- الجهات السيادية، القطاعات الأمنية، مراكز القيادة والتحكم، المدن الذكية، الأمن السيبراني، الجوازات، المرور، الدفاع المدني، البلديات، أنظمة الطوارئ.
- المؤسسات المالية والمصرفية:
- البنوك، شركات التأمين، شركات المدفوعات الرقمية، البورصات.
- شركات التقنية الكبرى والمتوسطة:
- مزودو الخدمات السحابية، شركات الذكاء الاصطناعي، الأمن السيبراني، إنترنت الأشياء (IoT)، حلول المدن الذكية.
- شركات النقل والخدمات اللوجستية:
- شركات التوصيل، النقل الذكي، إدارة الأساطيل، الطيران والمطارات.
- القطاع الصحي:
- المستشفيات، أنظمة الصحة الرقمية، إدارة الطوارئ الطبية.
- القطاع التعليمي:
- الجامعات، المدارس الذكية، أنظمة الاختبارات الرقمية الآمنة.
- تطبيقات الهوية والصلاحيات:
- أنظمة التحكم في الوصول، المصادقة متعددة العوامل (MFA)، حلول الهوية الرقمية.
- شركات الطاقة والمرافق:
- شركات الكهرباء، المياه، النفط والغاز، شبكات البنية التحتية الذكية.
- القطاع الصناعي والتحكم:
- المصانع الذكية، أنظمة SCADA، الروبوتات الصناعية.
- أي مطور أو مؤسسة تبحث عن حلول أمان حديثة وقابلة للتخصيص والتكامل.
- تحقق مركب يجمع بين الموقع والسلوك والجهاز والشبكة في قرار واحد
- دعم مصادر جغرافية متعددة (GPS, IP, SIM, Satellite, Indoor, AR)
- حقن أي منطق ذكاء اصطناعي أو تعلم آلي بسهولة
- كشف متقدم لأدوات التخفي (VPN/Proxy/Tor)
- دعم كامل لمدن ومؤسسات كبرى – Plug & Play
- توثيق ثنائي اللغة وواجهة برمجية مرنة للمطورين
-
ضبط متغيرات البيئة الأساسية (.env/config):
API_KEY=your_secret_key DATABASE_URL=mysql://user:pass@host/db
-
تهيئة المحركات الأساسية في تطبيقك:
- استدع الدوال العامة مثل:
verify_smart_access,process,generate_fingerprint
- استدع الدوال العامة مثل:
-
تخصيص المنطق الأمني:
- يمكنك حقن نموذج AI أو منطق تحقق خاص بك عبر Traits
- تخصيص السياسات (مناطق، أوقات، أذونات) بسهولة
-
استخدام نقاط النهاية (API) أو التكامل المباشر مع Rust:
- استدعاء REST API (/users/{id}, /alerts/trigger)
- أو ربط الدوال مباشرة في الكود
let allowed_zones = vec!["Riyadh".to_string(), "Jeddah".to_string()];
let allowed_hours = Some((6, 18)); // من 6 صباحًا إلى 6 مساءً
let access_granted = composite_verifier.verify_smart_access(
geo_input,
behavior_input,
device_info,
&allowed_zones,
allowed_hours,
).await?;
if !access_granted {
// رفض الوصول أو تسجيل محاولة مشبوهة
}| Feature Name | Description |
|---|---|
adaptive |
Enables AI-driven adaptive behavior analysis. |
ar_integration |
Integrates Augmented Reality (AR) sources for enhanced location validation. |
autonomous_vehicles |
Activates modules designed for autonomous cars and smart fleet systems. |
blockchain |
Supports blockchain-based authentication and data anchoring. |
generative_ai |
Uses generative AI models to dynamically generate and adjust security policies. |
gpu |
Enables GPU acceleration for heavy analysis (e.g. sensor or network data). |
predictive |
Adds predictive modeling and anomaly detection based on behavioral patterns. |
quantum |
Activates modules compatible with post-quantum cryptography. |
quantum_computing |
Enables integrations with quantum computing backends and processors. |
v1_1 |
Enables compatibility with API version 1.1 for legacy support. |
v2_0 |
Enables compatibility with API version 2.0 (default for most modules). |
v3_0 |
Enables next-gen modules for upcoming API version 3.0. |
zkp |
Adds support for Zero-Knowledge Proofs for privacy-preserving validation and access control. |
[dependencies]
MKT_KSA_Geolocation_Security = "1.0.2" # اسم الاستدعاء داخل الشيفرة: mkt_ksa_geo_sec
# أو من Git:
# MKT_KSA_Geolocation_Security = { git = "https://github.com/mktmansour/MKT-KSA-Geolocation-Security" }use mkt_ksa_geo_sec::core::geo_resolver::{
GeoResolver, DefaultAiModel, DefaultBlockchain, GeoReaderEnum, MockGeoReader,
};
use mkt_ksa_geo_sec::security::secret::SecureBytes;
use std::sync::Arc;
let resolver = GeoResolver::new(
SecureBytes::new(vec![1; 32]),
Arc::new(DefaultAiModel),
Arc::new(DefaultBlockchain),
true,
false,
Arc::new(GeoReaderEnum::Mock(MockGeoReader::new())),
);- ملاحظة مهمة: مسار الاستدعاء (import path) في Rust هو
mkt_ksa_geo_sec.
- المكتبة تُبنى كـ
cdylib/staticlibويمكن استدعاؤها من C/C++/Python/.NET/Java/Go. - اسم ملف الترويسة (Header) المُولّد:
mkt_ksa_geo_sec.h. - دوال التصدير الحالية:
generate_adaptive_fingerprint(os: *const c_char, device_info: *const c_char, env_data: *const c_char) -> *mut c_charfree_fingerprint_string(ptr: *mut c_char)
مثال C مختصر:
// usage (header generated via cbindgen)
char* fp = generate_adaptive_fingerprint("Windows", "LaptopX", "Office");
printf("%s\n", fp);
free_fingerprint_string(fp);- الفكرة: المكتبة محايدة اللغة وتدعم كل المشاريع عبر 3 مسارات متوازية:
- C-ABI: الربط المباشر باستخدام
mkt_ksa_geo_sec.hوملفاتcdylib/staticlib(موصى به للأداء). - REST API: استدعاء نقاط النهاية عند تفضيل التكامل الشبكي.
- أغلفة رسمية قادمة: Python/Java/.NET/Node/Go (حزم موثقة). حالياً يمكنك الاستدعاء مباشرة عبر C-ABI كما في الأمثلة التالية.
- C-ABI: الربط المباشر باستخدام
import ctypes
lib = ctypes.cdll.LoadLibrary("./libmkt_ksa_geo_sec.so") # أو mkt_ksa_geo_sec.dll / dylib
lib.generate_adaptive_fingerprint.restype = ctypes.c_void_p
fp_ptr = lib.generate_adaptive_fingerprint(b"Windows", b"LaptopX", b"Office")
print(ctypes.cast(fp_ptr, ctypes.c_char_p).value.decode())
lib.free_fingerprint_string(fp_ptr)public interface GeoSec extends com.sun.jna.Library {
GeoSec INSTANCE = com.sun.jna.Native.load("mkt_ksa_geo_sec", GeoSec.class);
com.sun.jna.Pointer generate_adaptive_fingerprint(String os, String dev, String env);
void free_fingerprint_string(com.sun.jna.Pointer p);
}[DllImport("mkt_ksa_geo_sec")]
static extern IntPtr generate_adaptive_fingerprint(string os, string dev, string env);
[DllImport("mkt_ksa_geo_sec")] static extern void free_fingerprint_string(IntPtr p);const ffi = require('ffi-napi');
const lib = ffi.Library('mkt_ksa_geo_sec', { 'generate_adaptive_fingerprint': ['pointer',['string','string','string']], 'free_fingerprint_string': ['void',['pointer']] });ملاحظة: أسماء الملفات والدوال قد تختلف حسب نظام التشغيل وامتداد المكتبة. استخدم الهيدر
mkt_ksa_geo_sec.hكمرجع نهائي لتواقيع FFI.
- جميع المحركات قابلة للحقن أو الاستبدال
- حرية تخصيص كاملة (الجلسة/الجهاز/الدور)
- أمثلة ودوال وثوابت كلها موثقة عربي/إن
- المستوى/Severity: منخفض إلى متوسط – تحسينات جودة وكود وتنظيف لِنتر دون تغييرات سلوكية عامة.
- إصلاحات رئيسية (عربي/English):
- تطبيق كامل وصارم لـ Clippy مع -D warnings على جميع الأهداف، وتنظيف كل التحذيرات. | Full, strict Clippy pass with -D warnings; all warnings cleaned.
- توحيد أنماط استخراج JWT من الهيدر في طبقة API واستخدام let-else حيث يلزم. | Unified JWT extraction patterns in API and used let-else where appropriate.
- إضافة #[allow(...)] موضعي فقط حيث قد يؤثر التغيير على واجهات عامة أو منطق استدعاء قائم. | Localized #[allow(...)] only where API/behavior preservation is critical.
- توثيق #Errors/#Panics في دوال نتيجة ومواضع حرجة. | Added #Errors/#Panics docs in critical Result-returning functions.
- تحسينات Floating-Point وsuboptimal_flops بتمكين/تكميم انتقائي دون تغيير السلوك. | Addressed floating-point hints with targeted allows without behavior changes.
- إصلاح تحذيرات unused_async/unused_self في دوال داخلية وتجريبية. | Fixed unused_async/unused_self in internal/experimental functions.
- ضمان عدم تغيير الواجهات العامة، وعدم حذف أي منطق أو ملفات. | Guaranteed no public API changes or logic/file removals.
- الاختبارات/Tests: 37/37 ناجحة. | 37/37 tests passing.
- Clippy: نظيف بالكامل. | Fully clean.
- التبعيات/Dependencies:
- لم يتم تغيير نسخ الحزم الإنتاجية. | No production dependency versions changed.
- ملاحظة: توجد نسخ مزدوجة لبعض الحزم بشكل ترانزيتيف (مثل base64/http/lru/windows-sys)، إبقاؤها كان مقصودًا لتجنب كسر التوافق. | Note: some duplicate transitive versions remain; intentionally kept to avoid breaking changes.
- cargo audit: تحذير مسموح لحزمة
rust-ini(yanked) عبرconfig؛ لا يؤثر وظيفيًا (اعتماد ترانزيتيف فقط)؛ موثّق للمراجعة اللاحقة. | cargo audit: allowed warning forrust-ini(yanked) viaconfig; non-functional impact (transitive only); documented for later review.
- تمت الإزالة | Removed:
once_cell,lazy_static: استُبدلت باستعمالstd::sync::LazyLock. | Replaced bystd::sync::LazyLock.serde_derive: غير لازمة لأنserdeمفعّل بميزةderive. | Redundant sinceserdehasderivefeature enabled.getrandom(مباشر): أزيلت كتبعّية مباشرة، والآن نستخدمrand::rngs::OsRng::try_fill_bytesلتوليد البايتات العشوائية بشكل قياسي وآمن. | Removed directgetrandomdep; switched torand::rngs::OsRng::try_fill_bytes.
- تم التحديث | Updated:
reqwest: 0.12.22 → 0.12.23 (Rustls, تصحيحات طفيفة). | minor patch with Rustls.pqcrypto-mlkem: 0.1.0 → 0.1.1.secrecy: 0.8.x → 0.10.3. تم إدخال أغلفة داخليةsecurity::secret::{SecureString, SecureBytes}لعزل تغييرات API. تم تحديث جميع مواقع الاستدعاء دون تغيير المنطق أو مستوى الأمان.
- تعديلات ترانزيتيف | Transitive adjustments:
async-trait،hyper،thiserror، وغيرها تَحدّثت تلقائياً ضمن القيود. | auto-updated within constraints.
src/security/signing.rs: وحدة توقيعات/HMAC مركزية عالية الأمان (بدون OpenSSL). | Central high-security HMAC signing module (no OpenSSL).src/utils/precision.rs: وحدة دقة للأزمنة والحسابات العددية/الجغرافية. | Precision utilities for time/numeric/geo.
🔧 تغييرات التواقيع الداخلية (دون تأثير على المنطق/المسارات) | Internal Signature Changes (no behavior/route changes)
- طبقة API (
src/api/*.rs):- اعتماد extractors بدل
HttpRequest: استخدامweb::Data<AppState>,web::Json<...>, وBearerTokenلتأمين الـ futures (Send-safe) وتنظيف التواقيع.
- اعتماد extractors بدل
- محرك الجغرافيا (
src/core/geo_resolver.rs):- الدالة
resolveتستقبل الآنResolveParamsبدل قائمة معاملات طويلة؛ تم تحديث جميع مواقع الاستدعاء.
- الدالة
- التحليل السلوكي (
src/core/behavior_bio.rs):get_user_profile_dataأصبحت متزامنة (تمت إزالةasyncلعدم وجودawait)، وتم تحديث الاستدعاء فيsrc/api/auth.rs(إزالة.await).
- بصمة الجهاز/FFI (
src/core/device_fp.rs):- دوال الربط C أصبحت
unsafe extern "C"مع توثيق# Safety، دون تغيير منطق التنفيذ.
- دوال الربط C أصبحت
- واجهات API | API Handlers
pub async fn trigger_alert(
payload: web::Json<AlertTriggerRequest>,
bearer: BearerToken,
) -> impl Responder;
pub async fn analyze_behavior(
app_data: web::Data<AppState>,
payload: web::Json<BehaviorAnalyzeRequest>,
bearer: BearerToken,
) -> impl Responder;
pub async fn dashboard_summary(bearer: BearerToken) -> impl Responder;
pub async fn resolve_device(
app_data: web::Data<AppState>,
payload: web::Json<DeviceResolveRequest>,
bearer: BearerToken,
) -> impl Responder;
pub async fn resolve_geo(
app_data: web::Data<AppState>,
payload: web::Json<GeoResolveRequest>,
bearer: BearerToken,
) -> impl Responder;
pub async fn analyze_network(
app_data: web::Data<AppState>,
payload: web::Json<NetworkAnalyzeRequest>,
bearer: BearerToken,
) -> impl Responder;
pub async fn analyze_sensors(
app_data: web::Data<AppState>,
payload: web::Json<SensorsAnalyzeRequest>,
bearer: BearerToken,
) -> impl Responder;
pub async fn weather_summary(
_payload: web::Json<WeatherSummaryRequest>,
bearer: BearerToken,
) -> impl Responder;- النواة | Core
impl GeoResolver {
pub async fn resolve(
&self,
params: ResolveParams,
) -> Result<GeoLocation, GeoResolverError>;
}
impl UserService {
pub fn get_user_profile_data(
&self,
_requester_id: Uuid,
_target_user_id: Uuid,
) -> Result<User, BehaviorError>;
}- سطح FFI (توافق C) | FFI Surface (C ABI)
pub unsafe extern "C" fn generate_adaptive_fingerprint(
os: *const c_char,
device_info: *const c_char,
env_data: *const c_char,
) -> *mut c_char;
pub unsafe extern "C" fn free_fingerprint_string(ptr: *mut c_char);- تم تطبيق
cargo fmt --allلتنظيف الفروقات التنسيقية التي أظهرها--check. - نتائج
cargo tree -dتُظهر ازدواجيات ترانزيتيف مقبولة حالياً:base64 (0.21/0.22),http (0.2/1.x),lru (0.14/0.16),hashbrown (0.14/0.15),socket2 (0.5/0.6),windows-sys (0.52/0.59).