تركز هذه المقارنة على الواجهات الخلفية الأصلية ذاتية الاستضافة: sh0.dev وTrailBase وAurabase. للحصول على واجهة خلفية عامة ذاتية الاستضافة، غير مكتوبة بلغة Rust، مقارناتنا Aurabase vs PocketBase و Aurabase vs Appwrite استكشاف خيارات أخرى. للحصول على تحليل كامل لما تعنيه "سيادة الاتحاد الأوروبي" من الناحية القانونية، واستضافة الناشر وجنسيته، فإن مقالتنا الاستضافة الذاتية مقابل BaaS ذات سيادة الاتحاد الأوروبي تذهب أبعد من ذلك؛ يقتصر هذا المنشور على وضع Aurabase بين أقرانه في Rust.
الأساسيات
- ثلاثة خيارات حقيقية اليوم لواجهة خلفية أصلية ذاتية الاستضافة: sh0.dev (ثنائي فردي، ~25 ميجابايت)، TrailBase (Rust + واجهة SQLite المضمنة + SolidJS)، Aurabase (منصة كاملة، Postgres 16 مخصصة).
- تفترض Aurabase الحل الوسط المعاكس للثنائي الأحادي: العديد من الخدمات المنسقة (k3d محليًا أو Kubernetes/Helm في الإنتاج) في مقابل RLS متعدد المستأجرين، وCDC في الوقت الفعلي، والذكاء الاصطناعي الأصلي (NL2SQL، RAG).
- الاستضافة الذاتية وسيادة الاتحاد الأوروبي هما محوران متميزان: استضافة نفسك لا تضمن أي شيء طالما أن الخادم الفعلي وشركة النشر ليسا في الاتحاد الأوروبي.
- المعلومات حول sh0.dev وTrailBase مستندة على صفحاتهم العامة في وقت كتابة هذا التقرير، ولم يتم تدقيقها بشكل كامل: تحقق من وثائقهم المحدثة قبل اتخاذ أي قرارات.
لماذا يهم "الصدأ الأصلي" للاستضافة الذاتية
تعمل الواجهة الخلفية ذاتية الاستضافة على إزالة البنية التحتية من محيط موفر السحابة، ولكنها لا تتحمل مسؤولية تشغيلها بشكل موثوق. هذا هو المكان الذي يتوقف فيه اختيار اللغة عن كونه تفصيلًا: يؤدي أمان ذاكرة Rust ونقص أدوات تجميع البيانات المهملة إلى تقليل فئة كاملة من حالات فشل الإنتاج، تلك التي تضرب بشدة فريقًا صغيرًا يقوم بتشغيل خادمه الخاص.
هذه ليست حجة أداء خالصة. إن الخدمة التي لا تحتوي على segfault ولا تحتوي على توقفات مؤقتة غير متوقعة لجمع الذاكرة من الأسهل مراقبتها لفريق بدون SRE مخصص. تم توثيق البنية الفعلية لمساحة عمل Cargo الأساسية المكونة من 18 صندوقًا في Aurabase بالتفصيل في ملف بنية Rust.
"المصدر المفتوح" وحده لا يكفي لضمان قابلية النقل أو عدم القفل: فالبنية الفعلية، أو المستأجر الفردي أو المستأجر المتعدد، أو محرك التخزين الخاص أو القياسي، أكثر أهمية. يوفر كل من sh0.dev وTrailBase وAurabase إمكانية الوصول إلى التعليمات البرمجية المصدر، ولكن بنطاقات ونماذج بيانات مختلفة تمامًا.
sh0.dev: ثنائي Rust فريد من نوعه، مصمم للتبسيط
يقدم sh0.dev نفسه، وفقًا لصفحاته العامة في وقت كتابة هذا التقرير، كواجهة خلفية موزعة على شكل ثنائي Rust ثنائي يبلغ حوالي 25 ميجابايت. الحجة المركزية هي بساطة النشر: ملف يمكن نسخه إلى الخادم، بدون تبعيات خارجية لتثبيته بشكل منفصل.
لم نقم بتدقيق النطاق الوظيفي الدقيق أو نموذج الترخيص لـ sh0.dev بالتفصيل في هذه المقالة: تظل المعلومات المتاحة للعامة حول هذا الموضوع محدودة، ويتطور مشروع من هذا النوع بسرعة. إذا كان لهذا المعيار أهمية في قرارك، فتحقق من الوثائق الرسمية المحدثة قبل اتخاذ القرار.
TrailBase: Rust core، وSQLite المضمن، وواجهة SolidJS
يجمع TrailBase، وفقًا لصفحاته العامة، نواة خلفية مكتوبة بلغة Rust، وقاعدة بيانات SQLite مضمنة وواجهة إدارة مبنية مع SolidJS، وكلها يتم تقديمها كمشروع استضافة ذاتية. تذكرنا البنية بـ PocketBase (Go، SQLite، الواجهة المتكاملة)، مع وقت تشغيل مكتوب بلغة Rust بدلاً من Go.
كما هو الحال مع sh0.dev، لا تدعي هذه المقالة أنها قامت بفحص كود TrailBase أو خريطة الطريق بدقة. ما يمكننا قوله بثقة هو الموقع المعماري العام: ثنائي يتضمن محرك التخزين الخاص به بدلاً من الواجهة الخلفية المدعومة بـ Postgres خارجي.
Aurabase: Postgres 16 مخصص، منصة كاملة، مستضافة ذاتيًا أيضًا
تفترض Aurabase مقايضة مختلفة عن الثنائية الأحادية. يوفر المستودع مجموعة Kubernetes محلية (k3d) تم إطلاقها في أمر واحد عبر ./start.sh، بالإضافة إلى مخطط Helm كامل (deploy/helm/aurabase/) مع ملفات تعريف قيمة منفصلة لـ Hetzner، ومنصة Kubernetes المحلية (k3d)، وScaleway. تم إصدار مساحة عمل Root Cargo بموجب ترخيص MIT.
يتضمن هذا الاختيار العديد من الخدمات التي سيتم تنسيقها، والبوابة، والمصادقة، وقاعدة البيانات، والوقت الحقيقي، والتخزين، والوظائف، والذكاء الاصطناعي، بدلاً من عملية واحدة. في المقابل، يتلقى كل مشروع PostgreSQL 16 مخصصًا (وليس ملف SQLite مشترك)، مع pgvector 0.8.6 وpg_graphql مضمنين في صورة المستأجر، وعزل أمان على مستوى الصف على مستوى المحرك بدلاً من مستوى التطبيق.
الفارق الدقيق الوحيد الملحوظ في قلب Rust: يعتمد الوضع الافتراضي لوظائف الحافة على خدمة TypeScript مخصصة (V8 Isolates)، وهو حل وسط هندسي موثق بالتفصيل في ملف البنية المذكور أعلاه، وليس إغفالًا نفضل الحفاظ عليه هادئًا.
ثلاثة أبنية، ملخصة جنبا إلى جنب
تعكس الأعمدة sh0.dev وTrailBase التي تحمل علامة "للفحص" بحثًا غير شامل من جانبنا في هاتين الأداتين، وليس غيابًا مؤكدًا للوظائف فيهما.
| المعيار | أوراباسي | sh0.dev | تريلبيس |
|---|---|---|---|
| اللغة الرئيسية | الصدأ (مساحة عمل كاملة، 18 صندوقًا) | الصدأ (ثنائي واحد) | الصدأ (الأساسية) + SolidJS (الواجهة) |
| بصمة النشر | k3d محليًا أو Helm/Kubernetes قيد الإنتاج، والعديد من الخدمات | ثنائي واحد، ~25 ميجابايت | SQLite ثنائي واحد مضمن |
| قاعدة البيانات | PostgreSQL 16 مخصص لكل مشروع + pgvector + pg_graphql | ليتم التحقق منها (وثيقة رسمية) | سكليتي المضمنة |
| واجهة الإدارة | استوديو Next.js منفصل | للتحقق | واجهة SolidJS مدمجة في النظام الثنائي |
| الذكاء الاصطناعي الأصلي (NL2SQL / RAG) | نعم، تم تسجيل الدخول بالرمز (aura-ai) | للتحقق | للتحقق |
| الصوت الرسمي على هذه المقارنة | هذه المقارنة نشرتها Aurabase | لا شيء، غير مرغوب فيه | لا شيء، غير مرغوب فيه |
سيادة الاتحاد الأوروبي: والتي لا تعتمد على الاختيار الثنائي
إن الاستضافة الذاتية لواجهة خلفية مكتوبة بلغة Rust، مهما كانت، لا تضمن في حد ذاتها أي شيء فيما يتعلق بسيادة الاتحاد الأوروبي. يجب استيفاء شرطين متميزين: يجب أن يعمل الخادم الفعلي في الاتحاد الأوروبي، ويجب عليك الحفاظ على التحكم التشغيلي الفعلي فيه. لا يستطيع sh0.dev ولا TrailBase ولا Aurabase ضمان الشرط الثاني لك: تختار مكان نشر الثنائي أو الحاويات.
إن الاختصاص القضائي لناشر البرنامج مهم أيضًا، ولكن على محور مختلف: الإصدار الذي يديره المورد بدلاً من الاستضافة الذاتية الخاصة بك. هذه هي زاوية قانون CLOUD المفصلة في مقالتنا حول اختيار BaaS. بالنسبة للبنية التحتية التي تديرها Aurabase نفسها: فهي تعمل، ويتم التحقق منها في الإنتاج، في مراكز بيانات Hetzner في نورمبرغ وفالكنشتاين (ألمانيا) وكذلك في هلسنكي (فنلندا). هذه هي سيادة الاتحاد الأوروبي كما هي موجودة بالفعل اليوم، وهي تختلف عن المقر الرئيسي لشركة Aurabase SAS في باريس.
تفاصيل معايير الامتثال التي يجب التحقق منها قبل اختيار الإقامة، سواء كانت سيادية أم لا: صفحتنا الامتثال.
متى تختار ماذا
إذا كانت بصمة النشر هي المعيار الأول، فإن الحد الأدنى من VPS، أو جهاز متطور، أو مشروع يتم فيه حساب كل ميجابايت، أو sh0.dev أو TrailBase يستحق المحاولة. هذه اختيارات يمكن الدفاع عنها لحالة الاستخدام المحددة هذه، حتى لو لم نختبر بأنفسنا سلوكها في الإنتاج.
إذا كان مشروعك يحتاج إلى إيجارات متعددة حقيقية مع أمان متقدم على مستوى الصف، أو Postgres كامل بدلاً من SQLite، أو الذكاء الاصطناعي الأصلي (NL2SQL، RAG) بدون تجميع من جهة خارجية، فإن Aurabase يغطي هذا الأساس. وهو أيضًا المسار الأكثر مباشرة إذا بدأت من مشروع Supabase موجود: يتم بعد ذلك وضع Aurabase كبديل لـ Supabase المكتوب بلغة Rust، مع سياسات SDK وRLS التي تهدف إلى التوافق المباشر تقريبًا، والموثقة في دليل الترحيل .