SQLite เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ WASM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ DBMS เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš

ะ ะฐะทั€ะฐะฑะพั‚ั‡ะธะบะธ SQLite ั€ะฐะทะฒะธะฒะฐัŽั‚ ะฟั€ะพะตะบั‚ ะฟะพ ั€ะตะฐะปะธะทะฐั†ะธะธ ะฒะพะทะผะพะถะฝะพัั‚ะธ ะบะพะผะฟะธะปัั†ะธะธ ะฑะธะฑะปะธะพั‚ะตะบะธ ะฒ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝั‹ะน ะบะพะด WebAssembly, ัะฟะพัะพะฑะฝั‹ะน ะทะฐะฟัƒัะบะฐั‚ัŒัั ะฒ web-ะฑั€ะฐัƒะทะตั€ะต ะธ ะฟั€ะธะณะพะดะฝั‹ะน ะดะปั ะพั€ะณะฐะฝะธะทะฐั†ะธะธ ั€ะฐะฑะพั‚ั‹ ั ะ‘ะ” ะธะท web-ะฟั€ะธะปะพะถะตะฝะธะน ะฝะฐ ัะทั‹ะบะต JavaScript. ะšะพะด ะดะปั ะฟะพะดะดะตั€ะถะบะธ WebAssembly ะดะพะฑะฐะฒะปะตะฝ ะฒ ะพัะฝะพะฒะฝะพะน ั€ะตะฟะพะทะธั‚ะพั€ะธะน ะฟั€ะพะตะบั‚ะฐ. ะ’ ะพั‚ะปะธั‡ะธะต ะพั‚ API WebSQL, ะฒ ะพัะฝะพะฒะต ะบะพั‚ะพั€ะพะณะพ ะปะตะถะธั‚ SQLite, WASM SQLite ะฟะพะปะฝะพัั‚ัŒัŽ ะธะทะพะปะธั€ะพะฒะฐะฝ ะพั‚ ะฑั€ะฐัƒะทะตั€ะฐ ะธ ะฝะต ะฒะปะธัะตั‚ ะฝะฐ ะตะณะพ ะฑะตะทะพะฟะฐัะฝะพัั‚ัŒ (Google ั€ะตัˆะธะป ะพั‚ะบะฐะทะฐั‚ัŒัั ะพั‚ ะฟะพะดะดะตั€ะถะบะธ WebSQL ะฒ Chrome ะฟะพัะปะต ะฝะตัะบะพะปัŒะบะธั… ัƒัะทะฒะธะผะพัั‚ะตะน ะฒ SQLite, ะบะพั‚ะพั€ั‹ะต ะผะพะถะฝะพ ะฑั‹ะปะพ ัะบัะฟะปัƒะฐั‚ะธั€ะพะฒะฐั‚ัŒ ั‡ะตั€ะตะท WebSQL ะดะปั ะฐั‚ะฐะบะธ ะฝะฐ ะฑั€ะฐัƒะทะตั€).

ะฆะตะปัŒัŽ ะฟั€ะพะตะบั‚ะฐ ัะฒะปัะตั‚ัั ะฟั€ะตะดะพัั‚ะฐะฒะปะตะฝะธะต ั€ะฐะฑะพั‡ะตะน JavaScript-ะพะฑะฒัะทะบะธ, ะธะดะตะฝั‚ะธั‡ะฝะพะน ะฟะพ ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝะพัั‚ะธ ั API SQLite. Web-ั€ะฐะทั€ะฐะฑะพั‚ั‡ะธะบะฐะผ ะฟั€ะตะดะพัั‚ะฐะฒะปัะตั‚ัั ะฒั‹ัะพะบะพัƒั€ะพะฒะฝะตะฒั‹ะน ะพะฑัŠะตะบั‚ะฝะพ-ะพั€ะธะตะฝั‚ะธั€ะพะฒะฐะฝะฝั‹ะน ะธะฝั‚ะตั€ั„ะตะนั ะดะปั ั€ะฐะฑะพั‚ั‹ ั ะดะฐะฝะฝั‹ะผะธ ะฒ ัั‚ะธะปะต sql.js ะธะปะธ Node.js, ะพะฑะฒัะทะบะฐ ะฝะฐะด ะฝะธะทะบะพัƒั€ะพะฒะฝะตะฒั‹ะผ C API ะธ API ะฝะฐ ะฑะฐะทะต ะผะตั…ะฐะฝะธะทะผะฐ Web Worker, ะฟะพะทะฒะพะปััŽั‰ะธะน ัะพะทะดะฐะฒะฐั‚ัŒ ะฐัะธะฝั…ั€ะพะฝะฝั‹ะต ะพะฑั€ะฐะฑะพั‚ั‡ะธะบะธ, ะฒั‹ะฟะพะปะฝัะตะผั‹ะต ะฒ ะพั‚ะดะตะปัŒะฝั‹ั… ะฟะพั‚ะพะบะฐั…. ะ”ะปั ัะบั€ั‹ั‚ะธั ั‚ะพะฝะบะพัั‚ะตะน ะพั€ะณะฐะฝะธะทะฐั†ะธะธ ั€ะฐะฑะพั‚ั‹ ั ะฟะพั‚ะพะบะฐะผะธ ะฟะพะฒะตั€ั… API ะฝะฐ ะฑะฐะทะต Web Worker ั‚ะฐะบะถะต ั€ะฐะทะฒะธะฒะฐะตั‚ัั ะฒะฐั€ะธะฐะฝั‚ ะฟั€ะพะณั€ะฐะผะผะฝะพะณะพ ะธะฝั‚ะตั€ั„ะตะนัะฐ ะฝะฐ ะพัะฝะพะฒะต ะผะตั…ะฐะฝะธะทะผะฐ Promise.

ะ”ะฐะฝะฝั‹ะต, ะบะพั‚ะพั€ั‹ะต web-ะฟั€ะธะปะพะถะตะฝะธั ัะพั…ั€ะฐะฝััŽั‚ ะฒ WASM-ะฒะตั€ัะธะธ SQLite, ะผะพะณัƒั‚ ะฑั‹ั‚ัŒ ะปะพะบะฐะปะธะทะพะฒะฐะฝั‹ ะฒ ั€ะฐะผะบะฐั… ั‚ะตะบัƒั‰ะตะณะพ ัะตะฐะฝัะฐ (ั‚ะตั€ััŽั‚ัั ะฟะพัะปะต ะฟะตั€ะตะทะฐะณั€ัƒะทะบะธ ัั‚ั€ะฐะฝะธั†) ะธะปะธ ัะพั…ั€ะฐะฝะตะฝั‹ ะฝะฐ ัั‚ะพั€ะพะฝะต ะบะปะธะตะฝั‚ะฐ (ัะพั…ั€ะฐะฝััŽั‚ัั ะผะตะถะดัƒ ัะตะฐะฝัะฐะผะธ). ะ”ะปั ะฟะพัั‚ะพัะฝะฝะพะณะพ ั…ั€ะฐะฝะตะฝะธั ะฟะพะดะณะพั‚ะพะฒะปะตะฝั‹ ะฑัะบะตะฝะดั‹ ะดะปั ั€ะฐะทะผะตั‰ะตะฝะธั ะดะฐะฝะฝั‹ั… ะฒ ะปะพะบะฐะปัŒะฝะพะน ะคะก ะฟั€ะธ ะฟะพะผะพั‰ะธ OPFS (Origin-Private FileSystem, ั€ะฐััˆะธั€ะตะฝะธะต ะบ API File System Access, ะดะพัั‚ัƒะฟะฝะพะต ะฟะพะบะฐ ั‚ะพะปัŒะบะพ ะฒ ะฑั€ะฐัƒะทะตั€ะฐั… ะฝะฐ ะพัะฝะพะฒะต 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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™