SQLite füügt WASM Ënnerstëtzung fir d'DBMS an engem Webbrowser ze benotzen

SQLite Entwéckler entwéckelen e Projet fir d'Fäegkeet ëmzesetzen fir d'Bibliothéik an de WebAssembly Zwëschencode ze kompiléieren, fäeg an engem Webbrowser ze lafen a gëeegent fir d'Aarbecht mat der Datebank aus Webapplikatiounen a JavaScript ze organiséieren. Code fir WebAssembly z'ënnerstëtzen ass an den Haaptprojetrepository bäigefüügt. Am Géigesaz zu der WebSQL API, déi op SQLite baséiert, ass WASM SQLite komplett vum Browser isoléiert an huet seng Sécherheet net beaflosst (Google huet decidéiert d'Ënnerstëtzung fir WebSQL a Chrome ofzeschafen nodeems verschidde Schwachstelle an SQLite duerch WebSQL exploitéiert kënne ginn fir de Browser z'attackéieren) .

D'Zil vum Projet ass e funktionnéierende JavaScript Kader ze bidden deen an der Funktionalitéit identesch ass mat der SQLite API. Web-Entwéckler gi mat engem héijen Objektorientéierten Interface zur Verfügung gestallt fir mat Daten am Stil vun sql.js oder Node.js ze schaffen, eng Bindung iwwer d'niddereg C API an eng API baséiert op dem Web Worker Mechanismus, wat et erlaabt Dir fir asynchrone Handler ze kreéieren déi a getrennten Threads ausgefouert ginn. Fir d'Intricacies vun der Organisatioun vun der Aarbecht mat Streamen uewen op der Web Worker-baséiert API ze verstoppen, gëtt och eng Versioun vum Programminterface baséiert op dem Promise Mechanismus entwéckelt.

D'Donnéeën, déi Webapplikatiounen an der WASM Versioun vu SQLite späicheren, kënnen an der aktueller Sessioun lokaliséiert ginn (verluer nodeems d'Säit nei lued) oder op der Client Säit gespäichert ginn (tëscht Sessiounen gespäichert). Fir permanent Späichere sinn Backends virbereet fir Daten am lokalen Dateiesystem ze placéieren mat OPFS (Origin-Private FileSystem, eng Extensioun fir d'Dateisystem Access API, momentan nëmme verfügbar a Browser baséiert op WebKit a Chromium) an op lokaler Browserlagerung baséiert. op der window.localStorage API an window.sessionStorage. Wann Dir localStorage / SessionStorage benotzt, ginn d'Donnéeën an de entspriechende Geschäfter an engem Schlëssel / Wäertformat reflektéiert, a wann Dir OPFS benotzt, ginn et zwou Méiglechkeeten: Simulatioun vun engem virtuelle FS mat WASMFS an eng separat Ëmsetzung vu sqlite3_vfs, bitt eng SQLite VFS Layer baséiert. op OPFS.

Fir SQLite an eng WASM View ze bauen, gëtt den Emscripten Compiler benotzt (et ass genuch fir d'ext/wasm Extensioun ze bauen: "./configure —enable-all; make sqlite3.c; cd ext/wasm; make"). D'Ausgab ass sqlite3.js an sqlite3.wasm Dateien, déi an Ärem JavaScript-Projet abegraff kënne ginn (HTML a JavaScript Beispill).

Source: opennet.ru

Setzt e Commentaire