SQLite WASM támogatás hozzáadva a DBMS webböngészőben való használatához

SQLite

egy ACID-kompatibilis relációs adatbázis-kezelő rendszer, amely egy viszonylag kis, C nyelven írt könyvtárban található

sok Az SQLite fejlesztői egy megvalósítandó projektet fejlesztenek ki a könyvtár összeállításának képessége a közbenső WebAssembly kód amely webböngészőben futtatható és alkalmas arra, hogy JavaScript nyelvű webalkalmazásokból szervezzük meg az adatbázissal való munkát.

A cél a projektről egy működő JavaScript-hivatkozás biztosítása amely funkcionalitásában megegyezik az SQLite API-val. A webfejlesztők magas szintű objektum-orientált felületet kapnak az adatokkal való munkavégzéshez sql.js vagy Node.js stílusban, egy alacsony szintű C API-t és a Web Worker mechanizmuson alapuló API-t, amely lehetővé teszi aszinkron létrehozását. vezérlők. amelyek külön szálakon futnak.

A Web Worker-alapú API-n keresztüli szálfűzés bonyolultságának elrejtéséhez Egy változata a mechanizmuson alapuló programozási felület Ígéret.

A webalkalmazások az SQLite WASM-verziójában tárolt adatok az aktuális munkameneten belül helyezkedhetnek el (elvesznek az oldal újratöltése után), vagy megmaradhatnak az ügyféloldalon (a munkamenetek között is megmaradnak).

Az állandó tároláshoz a háttérprogramok felkészültek az adatok helyi fájlrendszerre történő elhelyezésére OPFS (Origin-Private FileSystem, a File System Access API kiterjesztése, jelenleg csak a WebKit és Chromium alapú böngészőkben érhető el) és a böngésző helyi tárhelye a window.localStorage és window.sessionStorage API-kon alapul.

A localStorage/sessionStorage használatakor az adatok a megfelelő kulcs/érték tárolókra vannak leképezve, míg az OPFS használatakor két lehetőség van: egy virtuális FS szimulálása WASMFS használatával, és egy különálló sqlite3_vfs megvalósítás, amely SQLite alapú VFS réteget kínál az OPFS-ben. .

Az Emscripten fordító az SQLite WASM-reprezentációban való felépítésére szolgál. Az eredmény sqlite3.js és sqlite3.wasm fájlok, amelyeket beilleszthet a JavaScript-projektbe (HTML és JavaScript minta).

a konkrét célokról ennek a projektnek a megemlítése:

A nem célpontok között megjelölt esetek kivételével biztosítsa az sqlite3 C API szolgáltatásainak többé-kevésbé teljes csomagolóanyagát, olyan mértékben, amennyire a WASM és a C szolgáltatásparitása lehetővé teszi. Valójában legalább a következő API-kat biztosítsa.

  • Kössön össze egy alacsony szintű sqlite3 API-t, amely használat szempontjából a lehető legközelebb áll a natívhoz.
  • Magasabb szintű OO API, inkább az sql.js és a node.js stílusú megvalósításokhoz.
  • Munkavállalói API, amely a fenti API-kkal dolgozói üzeneteken keresztül kommunikál. Ezt úgy tervezték, hogy a fő szálon használják, alacsonyabb szintű API-kkal egy munkaszálra telepítve, és dolgozói üzeneteken keresztül kommunikáljon velük.
  • A Worker API Promise-alapú változata, amely teljesen elrejti a felhasználó szálak közötti kommunikációs vonatkozásait.
  • Amennyire lehetséges, támogassa az ügyféloldali állandó tárolást az elérhető JS API-k használatával. Az írás idején ez magában foglalja a Source Private File System (OPFS) és (nagyon korlátozott) tárhelyet a window.localStorage és .window.sessionStorage háttérprogramokon keresztül

Ami nem specifikus célok:

  • Mivel a WASM egy webközpontú technológia, és az UTF-8 a kódolások királya ezen a területen, jelenleg nem tervezik az UTF3-hoz kapcsolódó sqlite16 API-k támogatását.
  • Míg a böngészőn kívüli WASM-futási környezetek támogatása széles körben elterjedt, ez a projekt jelenleg (2022 végén) csak a böngészőcélokra összpontosít. Bár a webes megvalósítási részletek elsőbbséget élveznek, és az API JavaScript-összetevői kifejezetten a böngészőkliensekre összpontosítanak, az alacsonyabb szintű WASM-modulnak "kell" működnie nem webes WASM-környezetekben.
  • Kompatibilitás a régi vagy szűkös platformokkal. A WASM modern webhez készült, és modern platformokat igényel. Hasonlóképpen, az elavult sqlite3 könyvtárbeállítások teljes egészében eltávolításra kerülnek a WASM felületről.

A WebAssembly támogatás kódja bekerült a projekt fő tárházába. Az SQLite-on alapuló WebSQL API-tól eltérően a WASM SQLite teljesen el van szigetelve a böngészőtől, és nincs hatással annak biztonságára (a Google úgy döntött, hogy megszünteti a WebSQL támogatását a Chrome-ban, miután az SQLite-ben számos olyan biztonsági rést találtak, amelyeket a WebSQL-en keresztül kihasználva megtámadhatták a Navigátort ).

végre, ha az vagy szeretne többet megtudni róla, ellenőrizheti a részleteket A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.