SQLite ajoute sipò WASM pou itilize DBMS nan yon navigatè entènèt

Devlopè SQLite yo ap devlope yon pwojè pou aplike kapasite pou konpile bibliyotèk la nan yon kòd entèmedyè WebAssembly ki ka kouri nan yon navigatè entènèt epi ki apwopriye pou òganize travay ak baz done ki soti nan aplikasyon entènèt nan lang JavaScript. Kòd pou sipò WebAssembly te ajoute nan depo prensipal pwojè a. Kontrèman ak API WebSQL, ki baze sou SQLite, WASM SQLite konplètman izole nan navigatè a epi li pa afekte sekirite li (Google deside abandone sipò pou WebSQL nan Chrome apre plizyè frajilite nan SQLite ki ta ka eksplwate atravè WebSQL pou atake navigatè a. ).

Objektif pwojè a se bay yon travay JavaScript obligatwa ki idantik nan fonksyonalite ak SQLite API a. Devlopè entènèt yo bay yon koòdone wo nivo oryante objè pou travay ak done nan style sql.js oswa Node.js, vlope sou yon API C ki ba, ak yon API ki baze sou mekanis Web Worker ki pèmèt ou. pou kreye moun kap okipe asynchrone ki kouri sou fil separe. Pou kache sibtilite ki genyen nan òganize travay ak fil sou tèt API ki baze sou Web Worker, yo devlope yon variant nan koòdone nan pwogram ki baze sou mekanis nan Promise tou.

Done ke aplikasyon entènèt yo estoke nan vèsyon WASM nan SQLite ka lokalize nan sesyon aktyèl la (pèdi apre rechajman paj la) oswa bò kliyan pèsiste (pèsiste ant sesyon yo). Pou depo ki pèsistan, backend yo te prepare pou mete done nan yon sistèm dosye lokal lè l sèvi avèk OPFS (Origin-Private FileSystem, yon ekstansyon pou API File System Access, disponib jiskaprezan sèlman nan WebKit ak navigatè ki baze sou Chromium) ak nan depo navigatè lokal yo. baze sou API window.localStorage ak window.sessionStorage. Lè w ap itilize localStorage/sessionStorage, done yo trase nan depo kle/valè ki apwopriye yo, pandan y ap itilize OPFS, gen de opsyon: similye yon FS vityèl lè l sèvi avèk WASMFS, ak yon aplikasyon sqlite3_vfs separe ki ofri yon kouch SQLite VFS ki baze sou OPFS.

Pou konstwi SQLite nan yon reprezantasyon WASM, yo itilize du Emscripten (li ase pou konstwi ekstansyon ext/wasm: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Pwodiksyon an se sqlite3.js ak sqlite3.wasm fichye ou ka mete nan pwojè JavaScript ou a (egzanp HTML ak JavaScript).

Sous: opennet.ru

Add nouvo kòmantè