SQLite වෙබ් බ්‍රවුසරයක DBMS භාවිතා කිරීම සඳහා WASM සහාය එක් කරයි

SQLite සංවර්ධකයින් විසින් වෙබ් බ්‍රවුසරයක ධාවනය කළ හැකි අතර ජාවාස්ක්‍රිප්ට් භාෂාවෙන් වෙබ් යෙදුම් වලින් දත්ත සමුදාය සමඟ වැඩ සංවිධානය කිරීමට සුදුසු අතරමැදි WebAssembly කේතයක් බවට පුස්තකාලය සම්පාදනය කිරීමේ හැකියාව ක්‍රියාත්මක කිරීමට ව්‍යාපෘතියක් සංවර්ධනය කරමින් සිටී. WebAssembly සහාය සඳහා කේතය ප්‍රධාන ව්‍යාපෘති ගබඩාවට එක් කර ඇත. SQLite මත පදනම් වූ WebSQL API මෙන් නොව, WASM SQLite බ්‍රවුසරයෙන් සම්පූර්ණයෙන්ම හුදකලා වී ඇති අතර එහි ආරක්ෂාවට බලපාන්නේ නැත (SQLite හි ඇති දුර්වලතා කිහිපයකින් පසුව බ්‍රවුසරයට පහර දීමට WebSQL හරහා භාවිතා කළ හැකි Chrome හි WebSQL සඳහා සහය අත්හැරීමට Google තීරණය කළේය. ) .

ව්‍යාපෘතියේ පරමාර්ථය වන්නේ 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 compiler භාවිතා වේ (එය ext/wasm දිගුව ගොඩනැගීමට ප්‍රමාණවත් වේ: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). ප්‍රතිදානය ඔබේ JavaScript ව්‍යාපෘතියට ඇතුළත් කළ හැකි sqlite3.js සහ sqlite3.wasm ගොනු වේ (HTML සහ JavaScript උදාහරණය).

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න