عن المشروع
Exposed هو مشروع رسمي من JetBrains يوفر مكتبة SQL خفيفة وإطار عمل ORM للغة البرمجة Kotlin. مبني على أساس برامج تشغيل الاتصال بقواعد البيانات، ويدعم برامج تشغيل JDBC وR2DBC (منذ الإصدار 1.0.0)، مما يوفر نهجين متميزين للوصول إلى قاعدة البيانات: لغة نطاقية (DSL) آمنة الأنواع تغلف SQL، وواجهة برمجة تطبيقات خفيفة للوصول إلى الكائنات (DAO).
التميمة الرسمية للمشروع هي سمكة الحبار، اختيرت لقدرتها على محاكاة بيئات متنوعة—تمامًا كما يمكن لـ Exposed التكيف مع مجموعة متنوعة من محركات قواعد البيانات، مما يمكن المطورين من بناء تطبيقات دون الاعتماد على قاعدة بيانات محددة والتبديل بينها بأقل التغييرات.
تشمل قواعد البيانات المدعومة H2 (2.x)، وMariaDB، وMySQL، وOracle، وPostgreSQL (بما في ذلك pgjdbc-ng)، وAmazon Redshift (JDBC فقط)، وMicrosoft SQL Server، وSQLite.
ينظم الإطار في وحدات أساسية: يوفر exposed-core المكونات الأساسية وواجهة DSL؛ وexposed-dao (اختياري) يمكّن واجهة DAO وهو متوافق فقط مع exposed-jdbc؛ وexposed-jdbc يوفر تنفيذ طبقة النقل عبر JDBC؛ وexposed-r2dbc يوفر دعم الاتصال التفاعلي بقواعد البيانات.
تغطي الوحدات الإضافية وظائف إضافية تشمل تخزين البيانات المشفرة (exposed-crypt)، ومعالجة التاريخ والوقت عبر Java 8 Time API وJoda-Time وkotlinx-datetime، وأنواع بيانات JSON/JSONB (exposed-json)، والمبالغ المالية (exposed-money)، وترحيل مخطط قاعدة البيانات (exposed-migration-core وexposed-migration-jdbc وexposed-migration-r2dbc)، ومشغلات تكامل Spring Boot للإصدارين 3 و4، بالإضافة إلى مديري معاملات Spring Framework.
تشمل المتطلبات Kotlin 2.2+ وJDK 8+ لمعظم الوحدات، مع الحاجة إلى JDK 11+ للوحدات المتعلقة بـ R2DBC وJDK 17+ للوحدات المتعلقة بـ Spring وexposed-crypt.
يتيح نهج DSL للمطورين تعريف الجداول ككائنات Kotlin بأعمدة محددة الأنواع، وإجراء عمليات CRUD، وتنفيذ الانضمامات، واستخدام دوال SQL، وتطبيق عبارات group-by—كل ذلك مع أمان الأنواع في وقت الترجمة. يوفر نهج DAO فئات كيانات مع كائنات مصاحبة للاستعلام، ودعم العلاقات والمراجع المحملة بتكاسل.
الإصدارات متاحة على Maven Central تحت مساحة org.jetbrains.exposed. المشروع مرخص بموجب Apache License 2.0 ويرحب بالمساهمات عبر طلبات السحب المرتبطة بالمشكلات على JetBrains YouTrack.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.