Л СКЛите програмери развијају пројекат за имплементацију могућност компајлирања библиотеке у а средњи ВебАссембли код који се може покренути у веб претраживачу и погодан је за организовање рада са базом података из веб апликација на ЈаваСцрипт језику.
Циљ пројекта је да обезбеди функционалну ЈаваСцрипт везу који је по функционалности идентичан СКЛите АПИ-ју. Веб програмери добијају објектно оријентисан интерфејс високог нивоа за рад са подацима у стилу скл.јс или Ноде.јс, омотавајући Ц АПИ ниског нивоа и АПИ заснован на механизму Веб Воркер који омогућава креирање асинхроног контролери који раде на одвојеним нитима.
Да бисте сакрили сложеност повезивања нити преко АПИ-ја заснованог на Веб Воркер-у, Варијанта од програмски интерфејс заснован на механизму Обећај.
Подаци које веб апликације чувају у ВАСМ верзији СКЛите-а могу бити лоцирани унутар тренутне сесије (изгубљени након поновног учитавања странице) или постојани на страни клијента (постојати у свим сесијама).
За трајно складиштење, бацкендови су припремљени да ставе податке на локални систем датотека користећи ОПФС (Оригин-Привате ФилеСистем, проширење АПИ-ја за приступ систему датотека, тренутно доступно само у прегледачима заснованим на ВебКит-у и Цхромиум-у) и локално складиште прегледача на основу АПИ-ја виндов.лоцалСтораге и виндов.сессионСтораге.
Када се користи лоцалСтораге/сессионСтораге, подаци се мапирају у одговарајућа складишта кључева/вредности, док када се користи ОПФС, постоје две опције: симулација виртуелног ФС-а користећи ВАСМФС и засебна имплементација склите3_вфс која нуди ВФС слој заснован на СКЛите-у у ОПФС-у. .
Емсцриптен компајлер се користи за прављење СКЛите-а у ВАСМ репрезентацији. Резултат су датотеке склите3.јс и склите3.васм које можете укључити у свој ЈаваСцрипт пројекат (ХТМЛ и ЈаваСцрипт узорак).
конкретних циљева овог пројекта помињу се:
Осим тамо где је наведено у нециљовима, обезбедите мање-више комплетан омот функција за склите3 Ц АПИ, у мери у којој то дозвољава ВАСМ-ов паритет функција са Ц. У ствари, обезбедите најмање следеће АПИ-је .
- Повежите склите3 АПИ ниског нивоа који је што је могуће ближи изворном у смислу употребе.
- ОО АПИ вишег нивоа, више као имплементације стилова скл.јс и ноде.јс.
- АПИ заснован на радницима који комуницира са горе наведеним АПИ-јима преко порука радника. Ово је дизајнирано да се користи у главној нити, са АПИ-јима нижег нивоа инсталираним на радној нити и комуницира са њима путем порука радника.
- Варијанта Воркер АПИ-ја заснована на обећању која у потпуности сакрива аспекте комуникације између нити корисника.
- У мери у којој је то могуће, подржавајте трајно складиштење на страни клијента користећи доступне ЈС АПИ-је. У време писања овог текста, то укључује изворни приватни систем датотека (ОПФС) и (веома ограничено) складиште преко позадинских делова виндов.лоцалСтораге и .виндов.сессионСтораге
Што се тиче неспецифични циљеви:
- Пошто је ВАСМ технологија усмерена на веб и УТФ-8 је краљ кодирања у тој области, не постоје тренутни планови за подршку склите3 АПИ-ја који се односе на УТФ16.
- Иако је подршка за ВАСМ рунтимес ван претраживача широко распрострањена, овај пројекат је тренутно (крајем 2022.) фокусиран само на циљеве претраживача. Иако детаљи имплементације везани за веб имају предност, а ЈаваСцрипт компоненте АПИ-ја се фокусирају посебно на клијенте претраживача, ВАСМ модул нижег нивоа би „требао“ да ради у не-веб ВАСМ окружењима.
- Компатибилност са старим или нишним платформама. ВАСМ је дизајниран за модеран веб и захтева модерне платформе. Слично томе, застареле опције библиотеке склите3 биће у потпуности уклоњене из ВАСМ интерфејса.
Код за ВебАссембли подршку је додат у главно спремиште пројекта. За разлику од ВебСКЛ АПИ-ја, који је заснован на СКЛите-у, ВАСМ СКЛите је потпуно изолован од претраживача и не утиче на његову безбедност (Гоогле је одлучио да одустане од подршке за ВебСКЛ у Цхроме-у након неколико рањивости у СКЛите-у које би могле да се искористе преко ВебСКЛ-а за напад на Навигатор ).
коначно ако јеси заинтересовани да сазнају више о томе, можете проверити детаље У следећем линку.