postgres-wasm, שרת PostgreSQL הפועל בדפדפן עם WebAssembly

postgres-wasm

Postgres-wasm הוא פרויקט שבו PostgreSQL הועבר ל-WebAssembly

לאחרונה הוכרזה גישה חופשית ל-postgres-wasm . זהו שרת PostgreSQL הפועל בדפדפן ומציע סט מלא של תכונות, כולל שמירה על מצב דפדפן, שחזור מ-pg_dump ושכפול לוגי ממסד נתונים מרוחק.

Postgres-wasm הוא פרויקט קוד פתוח שהעביר את PostgreSQL ל-WebAssembly . פתרון זה פותח באמצעות שיתוף פעולה בין Supabase, ספקית מסדי נתונים בענן, לבין Snaplet, חברה המתמחה בתכנות מסדי נתונים.

"היום אנחנו משיקים את postgres-wasm עם החברים שלנו בסנאפלט", אמר מהנדס Supabase Mark Burggraf

למי שלא מכיר את Postgres, זוהי אחת ממערכות ניהול מסדי הנתונים המתקדמות ביותר בקוד פתוח . היא עשירה בתכונות, עם סוגי נתונים חזקים, אינדוקס עוצמתי ומגוון רחב של פונקציות מובנות בהן ניתן להשתמש כדי לפשט את מחסנית הנתונים ולאפשר למפתחים להתמקד בבניית האפליקציה שלהם. Postgres היא יותר מסתם מסד נתונים יחסי; היא הפכה לפלטפורמת הנתונים המהימנה שלכם.

על Postgres-wasm

Supabase אינה הראשונה שהפעילה את Postgres בדפדפן; שם זה שייך לצוות Crunchy Data, ששיתף את הגרסה שלהם ב-HN לפני חודש. מתוך רצון לפתח גרסה בקוד פתוח של הגרסה הקניינית של Crunchy Data, Supabase שיתפה פעולה עם Snaplet כדי לבנות את Postgres-wasm.

הודות ל-Postgres-wasm, ניתן להריץ PostgreSQL ישירות דרך דפדפן אינטרנט. הדבר הושג באמצעות הפצת לינוקס Buildroot, המאופיינת בגודלה הקטן ביותר, ואמולטור v86 המאפשר שכפול פעולת מסוף x86.

WebAssembly, לעומת זאת , נועד לאפשר בניית יישומים בעלי ביצועים גבוהים בדפי אינטרנט, אך הוא אינו מניח הנחות ספציפיות לאינטרנט או מספק פונקציונליות ספציפית לאינטרנט, כך שניתן להשתמש בו גם בסביבות אחרות. זהו תקן פתוח שמטרתו לתמוך בכל שפה בכל מערכת הפעלה, ובפועל, לכל השפות הפופולריות ביותר כבר יש לפחות רמה מסוימת של תמיכה. Supabase משתמש ב-v86 כדי להריץ את המכונה הווירטואלית שלו בתוך הדפדפן.

הרצת Postgres בדפדפן היא נהדרת , אבל חיבור אליו עם PgAdmin אפילו טוב יותר. לרוע המזל, דפדפנים חוסמים גישה לרשת ה-TCP של המכונה הווירטואלית. כדי לעקוף זאת, Supabase מנתב תעבורה דרך WebSockets. הם משתמשים ב-WebSockProxy fork המאפשר לאמולטור לתקשר עם האינטרנט על ידי המרת נתונים הנשלחים דרך פורט WebSocket לחבילות TCP. ה-WebSockProxy fork מוסיף את היכולת לבצע מנהרה בשרת Postgres.

בין המאפיינים המרכזיים של הפרויקט נמנים הדברים הבאים:

  • Postgres 14.5, psql, pg_dump וכו'.
  • שמור ושחזר מצב ל/מקובץ.
  • שמור ושחזר את מצב Postgres אל/מאחסון הדפדפן (IndexedDB).
  • אתחול מהיר מקובץ סטטוס או איפוס אמולטור מלא.
  • אפשרויות תצורת זיכרון מ-128 מגה-בייט עד 1024 מגה-בייט.
  • הגדר את גודל הגופן עבור הטרמינל.
  • העלה קבצים לאמולטור (כולל CSV ומסדי נתונים).
  • הורד קבצי אמולטור.
  • קישוריות רשת יוצאת מהאמולטור לאינטרנט.
  • מנהרת רשת נכנסת אל יציאת postgres 5432 בתוך האמולטור.

באופן כללי, הפרויקט כולו כלול בתמונת מצב בודדת בגודל 12 מגה-בייט שאיתה ניתן להפעיל שרת PostgreSQL.

כפי שמודים מפתחי Postgres-wasm, ביצועי זמן הריצה אינם גבוהים במיוחד, אך כשלעצמה המטרה להפוך את PostgreSQL 14.5 לשמיש מדפדפן מלא עם ממשק שורת פקודה psql הושגה בהצלחה. .

לבסוף, אם אתם מעוניינים ללמוד עוד על כך , תוכלו למצוא פרטים נוספים בקישור הבא.


הוסף כמקור מועדף בגוגל