વેબ બ્રાઉઝરમાં DBMS નો ઉપયોગ કરવા માટે SQLite WASM સપોર્ટ ઉમેર્યો

SQLite

ACID-સુસંગત રિલેશનલ ડેટાબેઝ મેનેજમેન્ટ સિસ્ટમ છે, જે C માં લખેલી પ્રમાણમાં નાની લાઇબ્રેરીમાં સમાયેલ છે.

SQLite વિકાસકર્તાઓ અમલીકરણ માટે એક પ્રોજેક્ટ વિકસાવી રહ્યા છે લાઇબ્રેરીને એમાં કમ્પાઇલ કરવાની ક્ષમતા મધ્યવર્તી વેબ એસેમ્બલી કોડ જે વેબ બ્રાઉઝરમાં ચલાવી શકાય છે અને JavaScript ભાષામાં વેબ એપ્લિકેશનોમાંથી ડેટાબેઝ સાથે કામ ગોઠવવા માટે યોગ્ય છે.

ઉદ્દેશ પ્રોજેક્ટ કાર્યાત્મક JavaScript લિંક પ્રદાન કરવાની છે જે SQLite API ની કાર્યક્ષમતામાં સમાન છે. વેબ ડેવલપર્સને sql.js અથવા Node.js ની શૈલીમાં ડેટા સાથે કામ કરવા માટે ઉચ્ચ-સ્તરનું ઑબ્જેક્ટ-ઓરિએન્ટેડ ઇન્ટરફેસ પ્રદાન કરવામાં આવે છે, વેબ વર્કર મિકેનિઝમ પર આધારિત નીચા-સ્તરનું C API અને API રેપિંગ કરે છે જે અસિંક્રોનસ બનાવવા માટે પરવાનગી આપે છે. નિયંત્રકો. જે અલગ થ્રેડો પર ચાલે છે.

વેબ વર્કર-આધારિત API પર થ્રેડિંગની જટિલતાઓને છુપાવવા માટે, નું એક પ્રકાર મિકેનિઝમ પર આધારિત પ્રોગ્રામિંગ ઇન્ટરફેસ વચન.

વેબ એપ્લિકેશન્સ SQLite ના WASM સંસ્કરણમાં જે ડેટા સંગ્રહિત કરે છે તે વર્તમાન સત્રમાં સ્થિત હોઈ શકે છે (પૃષ્ઠ ફરીથી લોડ કર્યા પછી ખોવાઈ જાય છે) અથવા ક્લાયંટ બાજુ પર ચાલુ રહે છે (સત્રોમાં ચાલુ રહે છે).

કાયમી સંગ્રહ માટે, સ્થાનિક ફાઇલ સિસ્ટમ પર ડેટા મૂકવા માટે બેકએન્ડ તૈયાર કરવામાં આવ્યા છે window.localStorage અને window.sessionStorage APIs પર આધારિત OPFS (ઓરિજિન-પ્રાઇવેટ ફાઇલસિસ્ટમ, ફાઇલ સિસ્ટમ એક્સેસ API માટે એક્સ્ટેંશન, હાલમાં ફક્ત વેબકિટ અને ક્રોમિયમ-આધારિત બ્રાઉઝર્સમાં ઉપલબ્ધ) અને બ્રાઉઝર સ્થાનિક સ્ટોરેજનો ઉપયોગ કરીને.

લોકલ સ્ટોરેજ/સેશન સ્ટોરેજનો ઉપયોગ કરતી વખતે, ડેટાને યોગ્ય કી/વેલ્યુ સ્ટોર્સ પર મેપ કરવામાં આવે છે, જ્યારે OPFS નો ઉપયોગ કરતી વખતે, ત્યાં બે વિકલ્પો છે: WASMFS નો ઉપયોગ કરીને વર્ચ્યુઅલ FS નું અનુકરણ કરવું, અને એક અલગ sqlite3_vfs અમલીકરણ જે SQLite આધારિત VFS સ્તર પ્રદાન કરે છે. OPFS માં .

Emscripten કમ્પાઇલરનો ઉપયોગ WASM પ્રતિનિધિત્વમાં SQLite બનાવવા માટે થાય છે. પરિણામ એ sqlite3.js અને sqlite3.wasm ફાઇલો છે જેને તમે તમારા JavaScript પ્રોજેક્ટ (HTML અને JavaScript નમૂના)માં સમાવી શકો છો.

ચોક્કસ ઉદ્દેશ્યો આ પ્રોજેક્ટનો ઉલ્લેખ છે:

બિન-લક્ષ્યોમાં નોંધ્યું હોય તે સિવાય, sqlite3 C API માટે લક્ષણોનું વધુ કે ઓછા સંપૂર્ણ રેપર પ્રદાન કરો, જ્યાં સુધી C સાથે WASM ની સુવિધા સમાનતા પરવાનગી આપે છે. હકીકતમાં, ઓછામાં ઓછા નીચેના APIs પ્રદાન કરો.

  • નિમ્ન સ્તરના sqlite3 API ને બાંધો જે ઉપયોગની દ્રષ્ટિએ શક્ય તેટલું નેટિવની નજીક હોય.
  • ઉચ્ચ સ્તરની OO API, sql.js અને node.js શૈલી અમલીકરણની જેમ.
  • કાર્યકર-આધારિત API કે જે ઉપરોક્ત API સાથે કાર્યકર સંદેશાઓ દ્વારા સંચાર કરે છે. આને મુખ્ય થ્રેડ પર ઉપયોગમાં લેવા માટે ડિઝાઇન કરવામાં આવ્યું છે, જેમાં વર્કર થ્રેડ પર નીચલા-સ્તરના API ઇન્સ્ટોલ કરેલા હોય છે, અને કાર્યકર સંદેશાઓ દ્વારા તેમની સાથે વાતચીત થાય છે.
  • વર્કર API નું વચન-આધારિત પ્રકાર જે વપરાશકર્તાના આંતર-થ્રેડ સંચાર પાસાઓને સંપૂર્ણપણે છુપાવે છે.
  • શક્ય હોય ત્યાં સુધી, ઉપલબ્ધ JS API નો ઉપયોગ કરીને ક્લાયન્ટ-સાઇડ પર્સિસ્ટન્ટ સ્ટોરેજને સપોર્ટ કરો. આ લખવાના સમયે, જેમાં window.localStorage અને .window.sessionStorage બેકએન્ડ દ્વારા સોર્સ પ્રાઈવેટ ફાઈલ સિસ્ટમ (OPFS) અને (ખૂબ જ મર્યાદિત) સ્ટોરેજનો સમાવેશ થાય છે.

આ માટે બિન-વિશિષ્ટ ઉદ્દેશ્યો:

  • WASM એ વેબ-સેન્ટ્રિક ટેક્નોલોજી હોવાથી અને UTF-8 એ તે ક્ષેત્રમાં એન્કોડિંગનો રાજા છે, તેથી UTF3-સંબંધિત sqlite16 API ને સપોર્ટ કરવાની કોઈ વર્તમાન યોજના નથી.
  • જ્યારે બ્રાઉઝરની બહારના WASM રનટાઈમ માટે સપોર્ટ વ્યાપક છે, આ પ્રોજેક્ટ હાલમાં (2022ના અંતમાં) માત્ર બ્રાઉઝર લક્ષ્યો પર કેન્દ્રિત છે. જોકે વેબ-સંબંધિત અમલીકરણ વિગતો પ્રાધાન્ય લે છે, અને API ના JavaScript ઘટકો ખાસ કરીને બ્રાઉઝર ક્લાયન્ટ્સ પર ધ્યાન કેન્દ્રિત કરે છે, નીચલા-સ્તરના WASM મોડ્યુલ બિન-વેબ WASM વાતાવરણમાં "કામ કરવું જોઈએ".
  • જૂના અથવા વિશિષ્ટ પ્લેટફોર્મ સાથે સુસંગતતા. WASM આધુનિક વેબ માટે રચાયેલ છે અને તેને આધુનિક પ્લેટફોર્મની જરૂર છે. એ જ રીતે, નાપસંદ કરેલ sqlite3 લાઇબ્રેરી વિકલ્પો સંપૂર્ણપણે WASM ઇન્ટરફેસમાંથી દૂર કરવામાં આવશે.

વેબએસેમ્બલી સપોર્ટ માટેનો કોડ પ્રોજેક્ટના મુખ્ય ભંડારમાં ઉમેરવામાં આવ્યો છે. WebSQL API થી વિપરીત, જે SQLite પર આધારિત છે, WASM SQLite બ્રાઉઝરથી સંપૂર્ણપણે અલગ છે અને તેની સુરક્ષાને અસર કરતું નથી (Google એ SQLite માં ઘણી નબળાઈઓ પછી Chrome માં WebSQL માટે સપોર્ટ છોડવાનું નક્કી કર્યું છે જેનો ઉપયોગ WebSQL દ્વારા નેવિગેટર પર હુમલો કરવા માટે થઈ શકે છે. ).

આખરે જો તમે છો તેના વિશે વધુ જાણવામાં રસ છે, તમે વિગતો ચકાસી શકો છો નીચેની કડીમાં


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: AB ઈન્ટરનેટ નેટવર્ક્સ 2008 SL
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.