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