SQLite нь вэб хөтөч дээр DBMS ашиглахад WASM дэмжлэгийг нэмдэг

SQLite хөгжүүлэгчид номын санг WebAssembly завсрын код болгон хөрвүүлэх, вэб хөтөч дээр ажиллах чадвартай, JavaScript дахь вэб програмын мэдээллийн сантай ажиллахад тохиромжтой төслийг боловсруулж байна. 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 дээр суурилсан хөтчүүдэд ашиглах боломжтой) болон локал хөтчийн санд суурилсан өгөгдлийг локал файлын системд байршуулах зориулалттай backends бэлтгэсэн. window.localStorage API болон window.sessionStorage дээр. LocalStorage/sessionStorage-г ашиглах үед өгөгдлийг түлхүүр/утга форматаар харгалзах дэлгүүрүүдэд тусгадаг бөгөөд OPFS ашиглах үед WASMFS ашиглан виртуал FS-ийг дуурайлган хийх, 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

сэтгэгдэл нэмэх