SQLite aldonas WASM-subtenon por uzi la DBMS en retumilo

SQLite-programistoj disvolvas projekton por efektivigi la kapablon kompili la bibliotekon en WebAssembly-interan kodon, kapablan funkcii en TTT-legilo kaj taŭga por organizi laboron kun la datumbazo de TTT-aplikoj en JavaScript. Kodo por subteni WebAssembly estis aldonita al la ĉefprojekta deponejo. Male al la WebSQL-API, kiu baziĝas sur SQLite, WASM SQLite estas tute izolita de la retumilo kaj ne influas ĝian sekurecon (Google decidis malrekomendi subtenon por WebSQL en Chrome post kiam pluraj vundeblecoj en SQLite povus esti ekspluatitaj per WebSQL por ataki la retumilon) .

La celo de la projekto estas disponigi funkciantan JavaScript-kadron kiu estas identa en funkcieco al la SQLite API. Retaj programistoj estas provizitaj per altnivela objektoorientita interfaco por labori kun datumoj en la stilo de sql.js aŭ Node.js, ligado super la malaltnivela C API kaj API bazita sur la mekanismo Web Worker, kiu permesas vi krei nesinkronajn prizorgilojn ekzekutitaj en apartaj fadenoj. Por kaŝi la komplikaĵojn de organizado de laboro kun fluoj aldone al la API bazita sur Web Worker, ankaŭ estas evoluigita versio de la programinterfaco bazita sur la Promise-mekanismo.

La datumoj, kiujn retprogramoj konservas en la WASM-versio de SQLite, povas esti lokalizitaj ene de la nuna sesio (perditaj post paĝaj reŝargoj) aŭ stokitaj ĉe la klientflanko (konservitaj inter sesioj). Por konstanta stokado, backends estis preparitaj por meti datumojn en la lokan dosiersistemon uzante OPFS (Origin-Private FileSystem, etendaĵo al la File System Access API, nuntempe havebla nur en retumiloj bazitaj sur WebKit kaj Chromium) kaj en loka retumila stokado bazita. sur la window.localStorage API kaj window.sessionStorage. Kiam vi uzas localStorage/sessionStorage, la datumoj estas reflektitaj en la respondaj vendejoj en ŝlosilo/valora formato, kaj kiam vi uzas OPFS, ekzistas du opcioj: simulado de virtuala FS per WASMFS kaj aparta efektivigo de sqlite3_vfs, ofertante SQLite VFS-tavolon bazitan. sur OPFS.

Por konstrui SQLite en WASM-vidon, la Emscripten-kompililo estas uzata (sufiĉas konstrui la etendon ext/wasm: "./configure —enable-all; make sqlite3.c; cd ext/wasm; make"). La eligo estas sqlite3.js kaj sqlite3.wasm dosieroj, kiuj povas esti inkluzivitaj en via JavaScript projekto (HTML kaj JavaScript ekzemplo).

fonto: opennet.ru

Aldoni komenton