נוספה תמיכת SQLite WASM לשימוש ב-DBMS בדפדפן אינטרנט

SQLite

היא מערכת ניהול מסדי נתונים יחסיים תואמת ACID, הכלולה בספרייה קטנה יחסית שנכתבה ב-C

ل מפתחי SQLite מפתחים פרויקט ליישום היכולת להרכיב את הספרייה ל-a קוד WebAssembly ביניים שניתן להפעיל בדפדפן אינטרנט ומתאים לארגון עבודה עם מסד הנתונים מאפליקציות אינטרנט בשפת JavaScript.

המטרה של הפרויקט הוא לספק קישור JavaScript פונקציונלי זהה בפונקציונליות ל- SQLite API. מפתחי אתרים מסופקים עם ממשק מונחה עצמים ברמה גבוהה לעבודה עם נתונים בסגנון sql.js או Node.js, עוטף API C ברמה נמוכה וממשק API המבוסס על מנגנון Web Worker המאפשר יצירת אסינכרוני בקרים הפועלים על שרשורים נפרדים.

כדי להסתיר את המורכבות של השרשור על ה-API מבוסס Web Worker, גרסה של ממשק התכנות המבוסס על המנגנון הַבטָחָה.

הנתונים שיישומי אינטרנט מאחסנים בגרסת ה-WASM של SQLite יכולים להיות ממוקמים בתוך ההפעלה הנוכחית (אובד לאחר טעינת העמוד מחדש) או להישמר בצד הלקוח (נמשך לאורך הפעלות).

עבור אחסון קבוע, הרכיבים האחוריים הוכנו כדי לשים נתונים על מערכת קבצים מקומית באמצעות OPFS (Origin-Private FileSystem, הרחבה ל-File System Access API, זמין כעת רק בדפדפנים מבוססי WebKit ו-Chromium) ואחסון מקומי בדפדפן המבוסס על ה-API של window.localStorage ו-window.sessionStorage.

בעת שימוש ב-localStorage/sessionStorage, הנתונים ממופים למאגרי המפתח/הערכים המתאימים, בעוד שבשימוש ב-OPFS, קיימות שתי אפשרויות: הדמיית FS וירטואלי באמצעות WASMFS, ויישום נפרד של sqlite3_vfs המציע שכבת VFS מבוססת SQLite. ב-OPFS .

המהדר Emscripten משמש לבניית SQLite בייצוג WASM. התוצאה היא קבצי sqlite3.js ו-sqlite3.wasm שתוכלו לכלול בפרויקט ה-JavaScript שלכם (דוגמת HTML ו-JavaScript).

של היעדים הספציפיים מהפרויקט הזה מוזכרים:

למעט במקומות שצוינו ב-non-objectives, ספק מעטפת פחות או יותר שלמה של תכונות עבור ה-API של sqlite3 C, ככל שמאפשר שוויון התכונות של WASM עם C. למעשה, ספק לפחות את ממשקי ה-API הבאים.

  • אגד sqlite3 API ברמה נמוכה שקרוב למקורי ככל האפשר מבחינת השימוש.
  • ממשק API של OO ברמה גבוהה יותר, כמו הטמעות בסגנון sql.js ו-node.js.
  • API מבוסס עובדים שמתקשר עם ממשקי ה-API שלעיל באמצעות הודעות עובדים. זה נועד לשמש בשרשור הראשי, עם ממשקי API ברמה נמוכה יותר מותקנים בשרשור עובד, ולתקשר איתם באמצעות הודעות עובדים.
  • גרסה מבוססת הבטחה של Worker API שמסתירה לחלוטין את היבטי התקשורת הבין-חוטים של המשתמש.
  • במידת האפשר, תמכו באחסון מתמשך בצד הלקוח באמצעות ממשקי API זמינים של JS. בזמן כתיבת שורות אלה, זה כולל מערכת קבצים פרטית מקור (OPFS) ואחסון (מוגבל מאוד) דרך הקצה האחורי של window.localStorage ו-.window.sessionStorage

באשר יעדים לא ספציפיים:

  • מכיוון ש-WASM היא טכנולוגיה ממוקדת אינטרנט ו-UTF-8 הוא מלך הקידודים בתחום זה, אין תוכניות עדכניות לתמוך בממשקי API של sqlite3 הקשורים ל-UTF16.
  • בעוד שהתמיכה בזמני ריצה WASM מחוץ לדפדפן נפוצה, פרויקט זה מתמקד כרגע (סוף 2022) ביעדי דפדפן בלבד. למרות שפרטי הטמעה הקשורים לאינטרנט מקבלים עדיפות, ורכיבי JavaScript של ה-API מתמקדים במיוחד בלקוחות דפדפן, מודול WASM ברמה נמוכה יותר "צריך" לעבוד בסביבות WASM שאינן אינטרנטיות.
  • תאימות לפלטפורמות ישנות או נישה. WASM מיועד לאינטרנט מודרני ודורש פלטפורמות מודרניות. באופן דומה, אפשרויות ספריית sqlite3 שהוצאו משימוש יוסרו לחלוטין מממשק WASM.

הקוד לתמיכה ב-WebAssembly נוסף למאגר הראשי של הפרויקט. בניגוד ל-WebSQL API, המבוסס על SQLite, WASM SQLite מבודד לחלוטין מהדפדפן ואינו משפיע על האבטחה שלו (גוגל החליטה לבטל את התמיכה ב-WebSQL בכרום לאחר מספר נקודות תורפה ב-SQLite שניתן לנצל באמצעות WebSQL כדי לתקוף את הניווט ).

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.