عن المشروع
better-duck عميل Rust لـ DuckDB مُصمم حول الاستخدام المضمّن، حيث تعمل قاعدة البيانات داخل التطبيق بدلاً من العمل كخادم منفصل. تُترجَم مكتبة DuckDB C ضمنه، لذلك لا حاجة إلى حزمة نظام أو تبعية وقت تشغيل؛ ما يجعله مناسبًا لتطبيقات سطح المكتب، والبنى المتقاطعة للأجهزة المحمولة، والبيئات المشابهة.
ينقسم المشروع إلى حزم crates: better-duck-core للاتصالات والعبارات المُجهّزة ومُلحق Appender للإدراج المجمّع وتغطية الأنواع والدوال المعرّفة من المستخدم؛ وbetter-duck-diesel وهو واجهة خلفية لـ Diesel 2.3 تتضمن DSL للاستعلامات والترحيلات وتجميع اتصالات r2d2 ودوال SQL والتجميعات والمشغلات الخاصة بـ DuckDB؛ وbetter-duck-macros وهو ماكرو إجرائي لـ UDFs واشتقاقات البيانات يُفعَّل عبر أعمدة الميزات؛ وbetter-duck-sys وهو روابط ربط C API الخاصة بـ DuckDB المضمّنة.
تشمل القدرات الأساسية وصولاً موجّهًا للصفوف إلى الصفوف والقيم دون استخدام Arrow؛ وغلاف FFI بحيث لا يتسرب أي كود unsafe إلى كود المستخدم؛ وتغطية أنواع DuckDB مثل الأعداد الصحيحة بكل عروضها، وDECIMAL، وUUID، وBIT، وBIGNUM، والأنواع الزمنية، والأنواع المركّبة LIST/ARRAY/STRUCT/MAP/UNION/ENUM؛ والاستعلامات ذات الوسائط؛ وAppender المجمّع؛ ومقابض Database مشتركة مع تجميع r2d2 وواجهة Tokio غير المتزامنة؛ وأدوات مساعدة لإدارة الامتدادات.
تسجّل ماكروهات السمات دوال Rust العادية كدوال قياسية أو جداول أو دوال تجميعية أو دوال تحويل، مع استنتاج الأنواع من التواقيع. وتربط ماكروهات الاشتقاق البنى والتعدادات بالصفوف وأنواع DuckDB، وهي FromRow وToRow وDuckEnum وDuckStruct، بينما تغطي الماكروهات المساعدة المعاملات والوسائط. تضيف واجهة Diesel الخلفية عمليات CRUD القياسية، والمعاملات، وأنواع SQL الخاصة بـ DuckDB، وDSL لدوال ومشغلات DuckDB، وأدوات مساعدة للبيانات المكانية، ومديري تجميع للاتصالات.
تتحكم أعمدة الميزات في التجميع، وتحويلات chrono وdecimal، وامتدادات JSON وParquet، والعمليات غير المتزامنة، وتجميع الاتصالات، وUDFs، والاشتقاقات، وbindgen وقت البناء. يشير README إلى أن المشروع في مرحلة beta، مع ملاحظة أن التغييرات الكاسرة ممكنة قبل الإصدار 1.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.