عن المشروع

bytdb هو قاعدة بيانات علائقية مدمجة، نقية Go، مصممة لتحل مكان SQLite بينما تتحدث لهجة Postgres. يعمل بالكامل داخل عملية التطبيق، ولا يتطلب خادمًا خارجيًا، ولا cgo، ولا تواصل عبر المقابس. الميزات التقنية الرئيسية تشمل: - **توافق مع Postgres**: يدعم بروتوكول سلك Postgres عبر `pgwire`, مما يسمح للأدوات مثل `psql`, `pgx`, وORMs مختلفة (مثل GORM) بالاتصال مباشرة. ينفذ جزءًا من لهجة Postgres، بما في ذلك دوال النافذة، التعبيرات الجدولية الشائعة (CTEs)، الانضمامات، ودعم `jsonb`. - **البنية المدمجة**: تم بناؤه كطبقة علائقية فوق `btypedb`, حيث يقوم بترميز الجداول، الصفوف، والفهارس الثانوية في مساحة مفتاح مرتبة واحدة. هذا يتيح مسحًا فعالًا للمفاتيح وعمليات ذرية. - **التزامن والمعاملات**: يوفر معاملات قابلة للتسلسل افتراضيًا. كما يوفر وضع تحكم تزامن متفائل (OCC) لأحمال عمل قراءة-intensive عالية الأداء. - **أنواع البيانات**: يدعم أنواعًا من مستوى Postgres بما في ذلك `timestamp[tz]`, `date`, `uuid`, `text[]`, و`jsonb` مع عائلة مشغل كاملة. - **المتانة والأمان**: يتميز بسجل كتابة مسبق (WAL) لضمان المتانة عند انقطاع الطاقة، وتشفير اختياري AES-256-GCM عند الراحة، وتكرار غير متزامن إلى مخازن كائنات متوافقة مع S3 (مشابه لـ Litestream). - **إدارة المخطط**: يدعم قيم صفوف نادرة، مما يتيح تغييرات مخطط仅 metadata مثل `AddColumn` و`DropColumn` دون إعادة كتابة الجدول بالكامل. يمكن استخدام قاعدة البيانات عبر سائق `database/sql` قياسي، أو واجهة SQL مباشرة، أو كخادم مستقل عبر بروتوكول سلك Postgres.