SQLite dodaje WASM podršku za korištenje DBMS-a u web pregledniku

SQLite programeri razvijaju projekt za implementaciju mogućnosti kompajliranja biblioteke u međukod WebAssembly, koji se može izvoditi u web pregledniku i prikladan za organiziranje rada s bazom podataka iz web aplikacija u JavaScriptu. Kod za podršku WebAssembly dodan je u glavni repozitorij projekta. Za razliku od WebSQL API-ja koji se temelji na SQLite-u, ​​WASM SQLite potpuno je izoliran od preglednika i ne utječe na njegovu sigurnost (Google je odlučio ukinuti podršku za WebSQL u Chromeu nakon što se nekoliko ranjivosti u SQLiteu moglo iskoristiti putem WebSQL-a za napad na preglednik) .

Cilj projekta je pružiti funkcionalni JavaScript okvir koji je po funkcionalnosti identičan SQLite API-ju. Web programeri imaju objektno orijentirano sučelje visoke razine za rad s podacima u stilu sql.js ili Node.js, vezanje preko C API-ja niske razine i API-ja temeljenog na mehanizmu Web Worker, koji omogućuje možete stvoriti asinkrone rukovatelje koji se izvode u zasebnim nitima. Kako bi se sakrile zamršenosti organiziranja rada s tokovima na vrhu API-ja temeljenog na Web Workeru, također se razvija verzija programskog sučelja temeljena na mehanizmu Promise.

Podaci koje web aplikacije pohranjuju u WASM verziji SQLitea mogu se lokalizirati unutar trenutne sesije (izgubiti nakon ponovnog učitavanja stranice) ili pohraniti na strani klijenta (spremiti između sesija). Za trajnu pohranu pripremljene su pozadine za smještaj podataka u lokalni datotečni sustav pomoću OPFS-a (Origin-Private FileSystem, proširenje File System Access API-ja, trenutno dostupno samo u preglednicima temeljenim na WebKit-u i Chromiumu) i u lokalnom pregledniku na temelju pohrane na window.localStorage API i window.sessionStorage. Kada koristite localStorage/sessionStorage, podaci se odražavaju u odgovarajućim pohranama u formatu ključ/vrijednost, a kada koristite OPFS, postoje dvije opcije: simulacija virtualnog FS-a pomoću WASMFS i zasebna implementacija sqlite3_vfs, koja nudi SQLite VFS sloj temeljen na OPFS-u.

Za ugradnju SQLite-a u WASM prikaz koristi se Emscripten kompajler (dovoljno je izgraditi ekstenziju ext/wasm: “./configure —enable-all; make sqlite3.c; cd ext/wasm; make”). Izlaz su datoteke sqlite3.js i sqlite3.wasm koje se mogu uključiti u vaš JavaScript projekt (primjer HTML i JavaScript).

Izvor: opennet.ru

Dodajte komentar