Hoʻohui ʻo SQLite i ke kākoʻo WASM no ka hoʻohana ʻana i ka DBMS ma kahi polokalamu kele pūnaewele

Ke hoʻomohala nei nā mea hoʻomohala SQLite i kahi papahana e hoʻokō i ka hiki ke hōʻuluʻulu i ka waihona i loko o ka code intermediate WebAssembly, hiki ke holo i kahi polokalamu kele pūnaewele a kūpono no ka hoʻonohonoho ʻana i ka hana me ka waihona mai nā noi pūnaewele ma JavaScript. Ua hoʻohui ʻia ke code e kākoʻo iā WebAssembly i ka waihona papahana nui. ʻAʻole like me ka WebSQL API, kahi i hoʻokumu ʻia ma SQLite, ua hoʻokaʻawale loa ʻia ʻo WASM SQLite mai ka polokalamu kele pūnaewele a ʻaʻole pili i kona palekana (ua hoʻoholo ʻo Google e hoʻopau i ke kākoʻo no WebSQL ma Chrome ma hope o ka hoʻohana ʻia ʻana o kekahi mau nāwaliwali o SQLite ma o WebSQL e hoʻouka i ka polokalamu) .

ʻO ka pahuhopu o ka papahana ʻo ia ka hoʻolako ʻana i kahi hoʻolālā JavaScript e hana like ana me ka SQLite API. Hāʻawi ʻia nā mea hoʻomohala pūnaewele me kahi pae kiʻekiʻe kiʻekiʻe no ka hana ʻana me ka ʻikepili i ke ʻano o sql.js a i ʻole Node.js, kahi hoʻopaʻa ʻana ma luna o ka haʻahaʻa haʻahaʻa C API a me kahi API e pili ana i ka mīkini hana Pūnaewele, e hiki ai. e hana ʻoe i nā mea lawelawe asynchronous i hoʻokō ʻia i nā pae ʻokoʻa. No ka hūnā ʻana i ka paʻakikī o ka hoʻonohonoho ʻana i ka hana me nā kahawai ma luna o ka API Web Worker-based API, ua hoʻomohala ʻia kahi mana o ka polokalamu i hoʻokumu ʻia ma ka ʻōnaehana Promise.

Hiki ke ʻike ʻia ka ʻikepili i mālama ʻia e nā noi pūnaewele ma ka mana WASM o SQLite i loko o ke kau o kēia manawa (nalo ma hope o ka hoʻouka hou ʻana o ka ʻaoʻao) a i ʻole mālama ʻia ma ka ʻaoʻao o ka mea kūʻai aku (mālama ʻia ma waena o nā kau). No ka mālama mau ʻana, ua hoʻomākaukau ʻia nā backends no ka waiho ʻana i ka ʻikepili i loko o ka ʻōnaehana faila kūloko me ka hoʻohana ʻana iā OPFS (Origin-Private FileSystem, kahi hoʻonui i ka File System Access API, loaʻa i kēia manawa ma nā polokalamu kele pūnaewele e pili ana i WebKit a me Chromium) ma ka window.localStorage API a me ka window.sessionStorage. Ke hoʻohana nei i ka localStorage/sessionStorage, ʻike ʻia ka ʻikepili i loko o nā hale kūʻai e pili ana i kahi ʻano kī/waiwai, a i ka wā e hoʻohana ai i ka OPFS, aia ʻelua mau koho: hoʻohālikelike i kahi FS virtual me ka hoʻohana ʻana i WASMFS a me kahi hoʻokō kaʻawale o sqlite3_vfs, e hāʻawi ana i kahi papa SQLite VFS. ma OPFS.

No ke kūkulu ʻana i SQLite i kahi nānā WASM, hoʻohana ʻia ka Emscripten compiler (ua lawa ia e kūkulu i ka ext/wasm extension: "./configure —enable-all; make sqlite3.c; cd ext/wasm; make"). ʻO ka hoʻopuka ʻana he faila sqlite3.js a me sqlite3.wasm, hiki ke hoʻokomo ʻia i kāu papahana JavaScript (HTML a me JavaScript laʻana).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka