SQLite-ն ավելացնում է WASM աջակցություն՝ վեբ բրաուզերում DBMS-ն օգտագործելու համար

SQLite-ի մշակողները նախագիծ են մշակում գրադարանը միջանկյալ WebAssembly կոդով կոմպիլացնելու կարողության իրականացման համար, որը կարող է գործարկվել վեբ բրաուզերում և հարմար է տվյալների բազայի հետ աշխատանքը վեբ հավելվածներից JavaScript լեզվով կազմակերպելու համար: WebAssembly-ի աջակցության կոդը ավելացվել է ծրագրի հիմնական պահեստում: Ի տարբերություն WebSQL API-ի, որը հիմնված է SQLite-ի վրա, WASM SQLite-ը լիովին մեկուսացված է զննարկիչից և չի ազդում դրա անվտանգության վրա (Google-ը որոշել է հրաժարվել WebSQL-ի աջակցությունից Chrome-ում SQLite-ում մի քանի խոցելիությունից հետո, որոնք կարող են օգտագործվել WebSQL-ի միջոցով՝ բրաուզերի վրա հարձակվելու համար։ ) .

Ծրագրի նպատակն է ապահովել JavaScript-ի աշխատանքային կապը, որը գործունակությամբ նույնական է SQLite API-ին: Վեբ մշակողներին տրամադրվում է բարձր մակարդակի օբյեկտի վրա հիմնված ինտերֆեյս՝ տվյալների հետ աշխատելու համար sql.js կամ Node.js ոճով, փաթաթելով ցածր մակարդակի C API-ով և API՝ հիմնված Web Worker մեխանիզմի վրա, որը թույլ է տալիս ձեզ: ստեղծել ասինխրոն մշակիչներ, որոնք աշխատում են առանձին թելերի վրա: 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 և առանձին sqlite3_vfs իրականացում, որն առաջարկում է OPFS-ի վրա հիմնված SQLite 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

Добавить комментарий