postgres-wasm ، خادم PostgreSQL يعمل في متصفح مع WebAssembly

postgres-wasm

Postgres-wasm هو مشروع تم فيه نقل PostgreSQL إلى WebAssembly

أُعلن مؤخراً عن إتاحة الوصول المجاني إلى postgres-wasm . وهو خادم PostgreSQL يعمل في المتصفح ويقدم مجموعة كاملة من الميزات، بما في ذلك حفظ حالة المتصفح، والاستعادة من pg_dump، والنسخ المنطقي من قاعدة بيانات بعيدة.

Postgres-wasm هو مشروع مفتوح المصدر قام بنقل PostgreSQL إلى WebAssembly . تم تطوير هذا الحل من خلال تعاون بين Supabase، وهي شركة مزودة لقواعد البيانات السحابية، و Snaplet، وهي شركة متخصصة في برمجة قواعد البيانات.

قال مهندس Supabase Mark Burggraf: "اليوم نطلق postgres-wasm مع أصدقائنا في Snaplet"

لمن لا يعرفون Postgres، فهو أحد أكثر أنظمة إدارة قواعد البيانات مفتوحة المصدر تطورًا . يتميز Postgres بوفرة الميزات، مع أنواع بيانات قوية، وفهرسة فعّالة، ومجموعة واسعة من الوظائف المدمجة التي تُسهّل بنية البيانات وتُمكّن المطورين من التركيز على بناء تطبيقاتهم. Postgres ليس مجرد قاعدة بيانات علائقية، بل أصبح منصة بيانات موثوقة.

حول Postgres-wasm

لم تكن Supabase أول من نجح في تشغيل Postgres على المتصفح؛ بل يعود هذا اللقب لفريق Crunchy Data، الذي شارك نسخته على Hacker News قبل شهر. وسعيًا منهم لتطوير نسخة مفتوحة المصدر من نسخة Crunchy Data الاحتكارية، تعاونت Supabase مع Snaplet لإنشاء Postgres-wasm.

بفضل Postgres-wasm، يُمكن تشغيل PostgreSQL مباشرةً عبر متصفح الويب. وقد تحقق ذلك باستخدام توزيعة لينكس Buildroot، التي تتميز بصغر حجمها للغاية، ومحاكي v86 الذي يسمح بمحاكاة عمل طرفية x86.

من ناحية أخرى ، يهدف WebAssembly إلى تمكين بناء تطبيقات عالية الأداء على صفحات الويب، ولكنه لا يفرض افتراضات خاصة بالويب أو يوفر وظائف مخصصة له، لذا يمكن استخدامه في بيئات أخرى. إنه معيار مفتوح يهدف إلى دعم أي لغة على أي نظام تشغيل، وفي الواقع، جميع اللغات الأكثر شيوعًا مدعومة بالفعل بمستوى معين على الأقل. يستخدم Supabase الإصدار v86 لتشغيل جهازه الظاهري داخل المتصفح.

يُعد تشغيل Postgres في متصفح أمرًا رائعًا ، لكن الاتصال به باستخدام PgAdmin أفضل بكثير. مع ذلك، تحظر المتصفحات الوصول إلى شبكة TCP الخاصة بالجهاز الظاهري. ولتجاوز هذه المشكلة، يقوم Supabase بتوجيه حركة البيانات عبر WebSockets. يستخدم Supabase نسخة معدلة من WebSockProxy تسمح للمحاكي بالتواصل مع الإنترنت عن طريق تحويل البيانات المرسلة عبر منفذ WebSocket إلى حزم TCP. تُضيف نسخة WebSockProxy المعدلة إمكانية إنشاء نفق لخادم Postgres.

من بين السمات الرئيسية للمشروع ما يلي:

  • Postgres 14.5 ، psql ، pg_dump ، إلخ.
  • حفظ واستعادة الحالة إلى / من ملف.
  • حفظ واستعادة حالة Postgres إلى / من تخزين المتصفح (IndexedDB).
  • التمهيد السريع من ملف الحالة أو إعادة تعيين المحاكي الكامل.
  • خيارات تكوين الذاكرة من 128 ميجا بايت إلى 1024 ميجا بايت.
  • اضبط حجم الخط للمحطة.
  • تحميل الملفات إلى المحاكي (بما في ذلك CSV وتفريغ قاعدة البيانات).
  • تنزيل ملفات المحاكي.
  • اتصال الشبكة الصادرة من المحاكي إلى الإنترنت.
  • نفق الشبكة الوارد إلى منفذ postgres 5432 داخل المحاكي.

بشكل عام ، يتم تضمين المشروع بأكمله في لقطة واحدة بحجم 12 ميغابايت لتشغيل خادم PostgreSQL.

كما يعترف مطورو Postgres-wasm ، فإن أداء وقت التشغيل ليس مرتفعًا جدًا ، ولكن الهدف في حد ذاته جعل PostgreSQL 14.5 قابلة للاستخدام من متصفح كامل بواجهة سطر أوامر psql قد تم تحقيقه بنجاح.

وأخيرًا، إذا كنت مهتمًا بمعرفة المزيد عن هذا الموضوع ، يمكنك العثور على التفاصيل في الرابط التالي.


أضف كمصدر مفضل في جوجل