عن المشروع
Datahike هي قاعدة بيانات Datalog دائمة تقدم واجهات برمجة متوافقة مع Datomic ودلالات شبيهة بـ git. مبنية على هياكل بيانات ثابتة مع مشاركة هيكلية، لقطات قاعدة البيانات هي قيم غير قابلة للتغيير يمكن الاحتفاظ بها ومشاركتها والاستعلام عنها دون أقفال أو نسخ.
القدرات الرئيسية الموصوفة في ملف README:
- مساحة الفهرس الموزعة: يصل القراء إلى الفهارس الثابتة مباشرة لتوسيع نطاق القراءة دون اتصالات قاعدة بيانات.
- تخزين مرن عبر konserve: خلفيات File وLMDB وS3 وJDBC وRedis وIndexedDB.
- دعم عبر المنصات: JVM وNode.js والمتصفح، مع واجهات برمجة Clojure وClojureScript وJavaScript وJava.
- مزامنة في الوقت الفعلي عبر WebSocket مع Kabel للاتصال من المتصفح إلى الخادم.
- السفر عبر الزمن: استعلام أي حالة تاريخية مع سجل تدقيق كامل للمعاملات.
- تطهير البيانات للامتثال التنظيمي (جاهز لـ GDPR).
- استخدام إنتاجي مُبلغ عنه مع مليارات الداتومات، بما في ذلك النشر في الخدمات الحكومية.
يقدم المشروع حجة لصالح Datalog على SQL للبيانات كثيفة العلاقات: مطابقة الأنماط عبر العلاقات، والاستعلامات المتعدية والعودية، وربط قواعد بيانات متعددة تُعبر عنها بشكل طبيعي. الثبات يعامل قاعدة البيانات كسجل إلحاقي فقط للحقائق، مما يمكن من سجلات التدقيق، وتصحيح الأخطاء عبر السفر عبر الزمن، واستبعاد البيانات.
الاستخدام يركز على واجهة برمجة Clojure (datahike.api) مع create-database وconnect وtransact وq وhistory وrelease وdelete-database. تهدف الواجهة إلى أن تكون بديلاً جاهزًا لمجموعة فرعية من Datomic على JVM. يغطي التكوين خلفيات التخزين ومرونة المخطط.
ربطات لغات تجريبية تشمل JavaScript (حزمة npm)، وأداة سطر أوامر GraalVM أصلية (dthk)، وpod لـ Babashka، وواجهة Java مع منشئ سلس، وربطات C/C++ أصلية (libdatahike)، وربطات Python. دعم ClojureScript يغطي Node.js (خلفية ملف) والمتصفحات (IndexedDB مع TieredStore).
مشاريع أمثلة تشمل Beleg، نظام فواتير وإدارة علاقات عملاء مع واجهة ويب وتوليد PDF عبر LaTeX. المستخدمون الإنتاجيون المذكورون يشملون هيئة التوظيف العامة السويدية (تصنيف JobTech، أكثر من 40,000 مفهوم، مهاجر من Datomic)، وStub (محاسبة للشركات الصغيرة في جنوب أفريقيا)، وجامعة هايدلبرغ لأبحاث تتبع المشاعر الداخلية.
مشاريع ذات صلة: Proximum يوفر فهرس متجهات HNSW للبحث الدلالي وRAG على نموذج Datahike الثابت؛ pg-datahike يدمج محولًا متوافقًا مع PostgreSQL (بروتوكول سلكي، مترجم SQL، كتالوجات pg_*) بحيث يمكن لعملاء PostgreSQL الاتصال دون تثبيت PostgreSQL، مع تكامل ثنائي الاتجاه على طبقة الداتوم وround-tripping لـ pg_dump (تجريبي).
Datahike جزء من نظام replikativ البيئي ويتكون من مكتبات قابلة لإعادة الاستخدام: konserve (تخزين مفتاح-قيمة قابل للتوصيل)، وkabel (نقل WebSocket)، وhasch (تجزئة قابلة للعنونة بالمحتوى)، وincognito (تسلسل قابل للتوسيع)، وsuperv.async (إشراف core.async)، وreplikativ (مزامنة CRDT)، وdistributed-scope (استدعاء عن بعد).
قرارات خارطة الطريق مدفوعة بالمجتمع عبر تصويتات أفكار مناقشات GitHub. يُقدم دعم تجاري. مرخصة بموجب رخصة Eclipse Public License.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.