ما هو Diesel ولماذا هو مطلوب؟
\n\nDiesel هي مكتبة ORM (تعيين الكائنات العلائقية) قوية وآمنة وقابلة للتوسع للغة البرمجة Rust. توفر طريقة آمنة من حيث النوع للتفاعل مع قواعد البيانات العلائقية مثل PostgreSQL و MySQL و SQLite. على عكس العديد من ORMs الأخرى، لا تستخدم Diesel السحر أو الانعكاس أثناء وقت التشغيل. بدلاً من ذلك، تقوم بتوليد كل الكود الضروري في مرحلة التجميع، مما يضمن صحة استعلاماتك وعدم تسببها في أخطاء أثناء وقت التشغيل.
\n\nالأسباب الرئيسية لاستخدام Diesel:
\n- \n
- أمان النوع: يتم اكتشاف الأخطاء في استعلامات SQL (مثل اسم عمود غير صحيح أو عدم تطابق النوع) في مرحلة التجميع، وليس في الإنتاج. \n
- الأداء: يقوم Diesel بتوليد كود عالي التحسين يعمل على مستوى استعلامات SQL المكتوبة يدويًا. \n
- قابلية التوسع: يمكنك بسهولة إضافة دعم لأنواع بيانات وعوامل ووظائف جديدة. \n
- الترحيلات: نظام الترحيلات المدمج يسمح لك بإدارة مخطط قاعدة البيانات ككود. \n
- الأمان: يقوم Diesel تلقائيًا بتعقيم معاملات الاستعلام، مما يمنع حقن SQL. \n
Diesel مثالي للمشاريع التي تكون فيها الموثوقية والأداء وأمان البيانات مهمة. يُستخدم على نطاق واسع في تطبيقات الويب وخدمات API وأدوات معالجة البيانات وأي مشاريع Rust أخرى تتطلب التفاعل مع قواعد البيانات.
\n\nتثبيت Diesel
\n\nيتكون تثبيت Diesel من جزأين: إضافة المكتبة إلى المشروع وتثبيت أداة CLI للعمل مع الترحيلات.
\n\n1. الإضافة إلى Cargo.toml
\nافتح ملف Cargo.toml لمشروعك وأضف التبعيات. اختر الخلفية المناسبة لقاعدة البيانات (أو أكثر من واحدة):
[dependencies]\ndiesel = { version = "2.1", features = ["postgres"] } # لـ PostgreSQL\n# diesel = { version = "2.1", features = ["mysql"] } # لـ MySQL\n# diesel = { version = "2.1", features = ["sqlite"] } # لـ SQLite\n\n\n2. تثبيت CLI (واجهة سطر الأوامر)
\nأداة CLI diesel_cli تُستخدم لإنشاء وتنفيذ الترحيلات. قم بتثبيتها عبر cargo:
# لـ PostgreSQL\ncargo install diesel_cli --no-default-features --features postgres\n\n# لـ MySQL\ncargo install diesel_cli --no-default-features --features mysql\n\n# لـ SQLite\ncargo install diesel_cli --no-default-features --features sqlite\n\n# لجميع الخلفيات\ncargo install diesel_cli\n\n\n3. إعداد الاتصال
\nأنشئ ملف .env في جذر المشروع لتخزين سلسلة الاتصال:
DATABASE_URL=postgres://username:password@localhost/diesel_demo\n\n\nثم قم بتهيئة Diesel في مشروعك:
\n\ndiesel setup\n\n\nسينشئ هذا الأمر ملف diesel.toml ومجلد migrations وسيحاول إنشاء قاعدة البيانات إذا لم تكن موجودة.
بداية سريعة مع مثال كود
\n\nلنقم بإنشاء تطبيق بسيط لإدارة المستخدمين.
\n\n1. إنشاء ترحيل
\nلنقم بإنشاء جدول users:
diesel migration generate create_users\n\n\nقم بتحرير ملفات الترحيل:
\n\nup.sql:
\nCREATE TABLE users (\n id SERIAL PRIMARY KEY,\n name VARCHAR NOT NULL,\n email VARCHAR NOT NULL UNIQUE,\n age INTEGER NOT NULL DEFAULT 0,\n created_at TIMESTAMP NOT NULL DEFAULT NOW()\n);\n\n\ndown.sql:
\nDROP TABLE users;\n\n\nقم بتطبيق الترحيل:
\n\nأيضاً في المكتبة
إرسال البريد الإلكتروني بلغة Rust: مكتبات lettre و mailparse للعمل مع البريد
nlohmann/json لـ C++: دليل شامل مع أمثلة
إرسال البريد الإلكتروني بلغة Rust: مكتبتا lettre وasync-smtp للقوائم البريدية
التحقق من صحة البيانات في PHP باستخدام مكتبة Respect\\Validation