SQLite веб-браузерде DBMS колдонуу үчүн WASM колдоосун кошот

SQLite иштеп чыгуучулары китепкананы веб-браузерде иштей турган жана JavaScript тилиндеги веб-тиркемелерден маалымат базасы менен иштөөнү уюштурууга ылайыктуу аралык WebAssembly кодуна компиляциялоо мүмкүнчүлүгүн ишке ашыруу боюнча долбоорду иштеп чыгууда. WebAssembly колдоо коду долбоордун негизги репозиторийине кошулду. SQLite негизинде түзүлгөн WebSQL API'ден айырмаланып, WASM SQLite браузерден толугу менен обочолонгон жана анын коопсуздугуна таасир этпейт (Google SQLite'де WebSQL аркылуу браузерге кол салуу үчүн пайдаланылышы мүмкүн болгон бир нече алсыздыктардан кийин Chrome'до WebSQL колдоону токтотууну чечти. ).

Долбоордун максаты SQLite API менен бирдей болгон иштөөчү JavaScript байланышын камсыз кылуу. Веб-иштеп чыгуучуларга sql.js же Node.js стилиндеги маалыматтар менен иштөө үчүн жогорку деңгээлдеги объектиге багытталган интерфейс, төмөнкү деңгээлдеги C API үстүнөн оролгон жана Web Worker механизмине негизделген API берилет, бул сизге мүмкүндүк берет. өзүнчө жиптерде иштеген асинхрондук иштеткичтерди түзүү. Web Worker негизиндеги API үстүнө жиптер менен иштөөнү уюштуруунун татаалдыктарын жашыруу үчүн Promise механизминин негизинде программалоо интерфейсинин варианты да иштелип чыгууда.

SQLite WASM версиясында веб-тиркемелер сактаган маалыматтар учурдагы сессиянын ичинде локализацияланышы мүмкүн (бет кайра жүктөлгөндөн кийин жоголду) же кардар тарабында сакталат (сеанстардын ортосунда сакталат). Туруктуу сактоо үчүн OPFS (Origin-Private FileSystem, File System Access API кеңейтүүсү, азырынча WebKit жана Chromium негизиндеги браузерлерде гана жеткиликтүү) жана жергиликтүү серепчи сактагычтар аркылуу маалыматтарды локалдык файл тутумуна жайгаштыруу үчүн серверлер даярдалган. window.localStorage API жана window.sessionStorage негизинде. LocalStorage/sessionStorage колдонгондо, маалыматтар тиешелүү ачкыч/маани дүкөндөрүнө түшүрүлөт, ал эми OPFSди колдонууда эки вариант бар: WASMFS аркылуу виртуалдык файл тутумун имитациялоо жана OPFS негизиндеги SQLite VFS катмарын сунуштаган өзүнчө sqlite3_vfs ишке ашыруу. .

SQLiteди WASM өкүлчүлүгүнө куруу үчүн, Emscripten компилятору колдонулат (ext/wasm кеңейтүүсүн куруу жетиштүү: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Чыгуу sqlite3.js жана sqlite3.wasm файлдары, аларды сиз JavaScript долбооруңузга киргизе аласыз (HTML жана JavaScript мисалы).

Source: opennet.ru

Комментарий кошуу