SQLite డెవలపర్లు వెబ్అసెంబ్లీ ఇంటర్మీడియట్ కోడ్లో లైబ్రరీని కంపైల్ చేసే సామర్థ్యాన్ని అమలు చేయడానికి ఒక ప్రాజెక్ట్ను అభివృద్ధి చేస్తున్నారు, ఇది వెబ్ బ్రౌజర్లో అమలు చేయగల సామర్థ్యం మరియు జావాస్క్రిప్ట్లోని వెబ్ అప్లికేషన్ల నుండి డేటాబేస్తో పనిని నిర్వహించడానికి అనుకూలంగా ఉంటుంది. WebAssemblyకి మద్దతు ఇచ్చే కోడ్ ప్రధాన ప్రాజెక్ట్ రిపోజిటరీకి జోడించబడింది. SQLiteపై ఆధారపడిన WebSQL API వలె కాకుండా, WASM SQLite బ్రౌజర్ నుండి పూర్తిగా వేరుచేయబడింది మరియు దాని భద్రతను ప్రభావితం చేయదు (SQLiteలో WebSQL ద్వారా బ్రౌజర్పై దాడి చేయడానికి అనేక దుర్బలత్వాలు ఏర్పడిన తర్వాత Chromeలో WebSQLకి మద్దతును నిలిపివేయాలని Google నిర్ణయించింది) .
SQLite APIకి కార్యాచరణలో ఒకేలా పనిచేసే JavaScript ఫ్రేమ్వర్క్ను అందించడం ప్రాజెక్ట్ యొక్క లక్ష్యం. వెబ్ డెవలపర్లు sql.js లేదా Node.js శైలిలో డేటాతో పని చేయడానికి ఉన్నత-స్థాయి ఆబ్జెక్ట్-ఓరియెంటెడ్ ఇంటర్ఫేస్తో అందించబడ్డారు, తక్కువ-స్థాయి C APIపై బైండింగ్ మరియు వెబ్ వర్కర్ మెకానిజంపై ఆధారపడిన API, ఇది అనుమతిస్తుంది. మీరు ప్రత్యేక థ్రెడ్లలో అమలు చేయబడిన అసమకాలిక హ్యాండ్లర్లను సృష్టించాలి. వెబ్ వర్కర్-ఆధారిత API పైన స్ట్రీమ్లతో పనిని నిర్వహించడంలోని చిక్కులను దాచడానికి, ప్రామిస్ మెకానిజం ఆధారంగా ప్రోగ్రామ్ ఇంటర్ఫేస్ వెర్షన్ కూడా అభివృద్ధి చేయబడుతోంది.
వెబ్ అప్లికేషన్లు SQLite యొక్క WASM వెర్షన్లో నిల్వ చేసే డేటా ప్రస్తుత సెషన్లో (పేజీ రీలోడ్ చేసిన తర్వాత పోతుంది) లేదా క్లయింట్ వైపు నిల్వ చేయబడుతుంది (సెషన్ల మధ్య సేవ్ చేయబడుతుంది). శాశ్వత నిల్వ కోసం, OPFS (మూలం-ప్రైవేట్ ఫైల్సిస్టమ్, ఫైల్ సిస్టమ్ యాక్సెస్ APIకి పొడిగింపు, ప్రస్తుతం వెబ్కిట్ మరియు క్రోమియం ఆధారంగా బ్రౌజర్లలో మాత్రమే అందుబాటులో ఉంది) మరియు స్థానిక బ్రౌజర్ నిల్వ ఆధారంగా స్థానిక ఫైల్ సిస్టమ్లో డేటాను ఉంచడానికి బ్యాకెండ్లు సిద్ధం చేయబడ్డాయి. 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