SQLite ืžื•ืกื™ืคื” ืชืžื™ื›ื” ื‘-WASM ืœืฉื™ืžื•ืฉ ื‘-DBMS ื‘ื“ืคื“ืคืŸ ืื™ื ื˜ืจื ื˜

ืžืคืชื—ื™ SQLite ืžืคืชื—ื™ื ืคืจื•ื™ืงื˜ ืœื”ื˜ืžืขืช ื™ื›ื•ืœืช ื”ื™ื“ื•ืจ ืฉืœ ื”ืกืคืจื™ื™ื” ืœืงื•ื“ WebAssembly ื‘ื™ื ื™ื™ื ืฉื™ื›ื•ืœ ืœืคืขื•ืœ ื‘ื“ืคื“ืคืŸ ืื™ื ื˜ืจื ื˜ ื•ืžืชืื™ื ืœืืจื’ื•ืŸ ืขื‘ื•ื“ื” ืขื ืžืกื“ ื”ื ืชื•ื ื™ื ืžืืคืœื™ืงืฆื™ื•ืช ืื™ื ื˜ืจื ื˜ ื‘ืฉืคืช JavaScript. ื”ืงื•ื“ ืœืชืžื™ื›ื” ื‘-WebAssembly ื ื•ืกืฃ ืœืžืื’ืจ ื”ืคืจื•ื™ืงื˜ื™ื ื”ืจืืฉื™. ื‘ื ื™ื’ื•ื“ ืœ-WebSQL API, ื”ืžื‘ื•ืกืก ืขืœ SQLite, WASM SQLite ืžื‘ื•ื“ื“ ืœื—ืœื•ื˜ื™ืŸ ืžื”ื“ืคื“ืคืŸ ื•ืื™ื ื• ืžืฉืคื™ืข ืขืœ ื”ืื‘ื˜ื—ื” ืฉืœื• (ื’ื•ื’ืœ ื”ื—ืœื™ื˜ื” ืœื‘ื˜ืœ ืืช ื”ืชืžื™ื›ื” ื‘-WebSQL ื‘ื›ืจื•ื ืœืื—ืจ ืžืกืคืจ ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื‘-SQLite ืฉื ื™ืชืŸ ืœื ืฆืœ ื‘ืืžืฆืขื•ืช WebSQL ื›ื“ื™ ืœืชืงื•ืฃ ืืช ื”ื“ืคื“ืคืŸ ).

ืžื˜ืจืช ื”ืคืจื•ื™ืงื˜ ื”ื™ื ืœืกืคืง ื›ืจื™ื›ืช JavaScript ืขื•ื‘ื“ืช ื–ื”ื” ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืœ- SQLite API. ืžืคืชื—ื™ ืืชืจื™ื ืžืกื•ืคืงื™ื ืขื ืžืžืฉืง ืžื•ื ื—ื” ืขืฆืžื™ื ื‘ืจืžื” ื’ื‘ื•ื”ื” ืœืขื‘ื•ื“ื” ืขื ื ืชื•ื ื™ื ื‘ืกื’ื ื•ืŸ sql.js ืื• Node.js, ืขื˜ื•ืฃ ืขืœ API C ื‘ืจืžื” ื ืžื•ื›ื”, ื•ืžืžืฉืง API ื”ืžื‘ื•ืกืก ืขืœ ืžื ื’ื ื•ืŸ Web Worker ื”ืžืืคืฉืจ ืœืš ื›ื“ื™ ืœื™ืฆื•ืจ ืžื˜ืคืœื™ื ืืกื™ื ื›ืจื•ื ื™ื™ื ื”ืคื•ืขืœื™ื ืขืœ ืฉืจืฉื•ืจื™ื ื ืคืจื“ื™ื. ื›ื“ื™ ืœื”ืกืชื™ืจ ืืช ื”ืžื•ืจื›ื‘ื•ื™ื•ืช ืฉืœ ืืจื’ื•ืŸ ื”ืขื‘ื•ื“ื” ืขื ืฉืจืฉื•ืจื™ื ืขืœ ื’ื‘ื™ ื”-API ืžื‘ื•ืกืก Web Worker, ืžืคืชื—ื™ื ื’ื ื’ืจืกื” ืฉืœ ืžืžืฉืง ื”ืชื›ื ื•ืช ื”ืžื‘ื•ืกืก ืขืœ ืžื ื’ื ื•ืŸ ื”-Promise.

ื”ื ืชื•ื ื™ื ืฉื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ืžืื—ืกื ื™ื ื‘ื’ืจืกืช WASM ืฉืœ SQLite ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืžืงื•ืžื™ื™ื ื‘ืชื•ืš ื”ื”ืคืขืœื” ื”ื ื•ื›ื—ื™ืช (ืื•ื‘ื“ ืœืื—ืจ ื˜ืขื™ื ื” ืžื—ื“ืฉ ืฉืœ ืขืžื•ื“) ืื• ื‘ืฆื“ ื”ืœืงื•ื— ื ืžืฉืš (ื ืžืฉืš ื‘ื™ืŸ ื”ืคืขืœื•ืช). ืœืื—ืกื•ืŸ ืžืชืžืฉืš, ื”ื•ื›ื ื• ืงืฆื” ืื—ื•ืจื™ ืœื”ืฆื‘ืช ื ืชื•ื ื™ื ื‘ืžืขืจื›ืช ืงื‘ืฆื™ื ืžืงื•ืžื™ืช ื‘ืืžืฆืขื•ืช OPFS (Origin-Private FileSystem, ื”ืจื—ื‘ื” ืœ-API ืฉืœ ืžืขืจื›ืช ื’ื™ืฉื” ืœืงื‘ืฆื™ื, ื–ืžื™ื ื” ืขื“ ื›ื” ืจืง ื‘ื“ืคื“ืคื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ WebKit ื•-Chromium) ื•ื‘ืžื—ืกื ื™ ื“ืคื“ืคืŸ ืžืงื•ืžื™ื™ื ืžื‘ื•ืกืก ืขืœ ื”-API ืฉืœ window.localStorage ื•-window.sessionStorage. ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-localStorage/sessionStorage, ื”ื ืชื•ื ื™ื ืžืžื•ืคื™ื ืœืžืื’ืจื™ ื”ืžืคืชื—/ืขืจื›ื™ื ื”ืžืชืื™ืžื™ื, ื‘ืขื•ื“ ืฉื‘ืฉื™ืžื•ืฉ ื‘-OPFS, ืงื™ื™ืžื•ืช ืฉืชื™ ืืคืฉืจื•ื™ื•ืช: ื”ื“ืžื™ื™ืช ืžืขืจื›ืช ืงื‘ืฆื™ื ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช WASMFS, ื•ื™ื™ืฉื•ื ื ืคืจื“ ืฉืœ sqlite3_vfs ื”ืžืฆื™ืข ืฉื›ื‘ืช SQLite VFS ืžื‘ื•ืกืกืช OPFS .

ื›ื“ื™ ืœื‘ื ื•ืช SQLite ืœืชื•ืš ื™ื™ืฆื•ื’ WASM, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื”ื“ืจ Emscripten (ืžืกืคื™ืง ืœื‘ื ื•ืช ืืช ื”ืกื™ื•ืžืช ext/wasm: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). ื”ืคืœื˜ ื”ื•ื ืงื‘ืฆื™ sqlite3.js ื•-sqlite3.wasm ืฉืืชื” ื™ื›ื•ืœ ืœื›ืœื•ืœ ื‘ืคืจื•ื™ืงื˜ ื”-JavaScript ืฉืœืš (ื“ื•ื’ืžื” ืฉืœ HTML ื•-JavaScript).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”