Дено ЈаваСцрипт платформа је компатибилна са НПМ модулима

Објављен је Дено 1.28, оквир за сандбок ЈаваСцрипт и ТипеСцрипт апликације који се могу користити за креирање руковалаца на страни сервера. Платформу је развио Риан Дахл, творац Ноде.јс. Као и Ноде.јс, Дено користи В8 ЈаваСцрипт мотор, који се такође користи у претраживачима заснованим на Цхромиум-у. У исто време, Дено није форк Ноде.јс-а, већ је нови пројекат креиран од нуле. Шифра пројекта се дистрибуира под лиценцом МИТ. Зграде су припремљене за Линук, Виндовс и мацОС.

Дено пројекат је креиран да корисницима пружи безбедније окружење и елиминише концептуалне грешке у архитектури Ноде.јс. Да би се побољшала безбедност, В8 мотор је написан на Русту, који избегава многе рањивости које произилазе из манипулације меморијом ниског нивоа. За обраду захтева у неблокирајућем режиму користи се Токио платформа, такође написана на Русту. Токио вам омогућава да креирате апликације високих перформанси засноване на архитектури вођеној догађајима, подржавајући вишенитну обраду и обраду мрежних захтева у асинхроном режиму.

Кључна промена у новом издању је стабилизација компатибилности са пакетима смештеним у НПМ репозиторијуму, што омогућава Дено-у да користи више од 1.3 милиона модула креираних за платформу Ноде.јс. На пример, апликације засноване на Дено-у сада могу да користе трајне модуле за приступ подацима као што су Присма, Монгоосе и МиСКЛ, као и фронт-енд оквире као што су Реацт и Вуе. Неки НПМ модули и даље остају некомпатибилни са Дено-ом, на пример због везивања за елементе окружења специфичних за Ноде.јс, као што је датотека пацкаге.јсон. Такође још увек није могуће користити команду "дено цомпиле" са НПМ модулима. Будућа издања планирају да се позабаве овим некомпатибилностима и ограничењима.

Подршка за Дено-ов претходно коришћени систем модула ЕЦМАСцрипт и Веб АПИ модел је задржан на истом нивоу, а позната Дено-ова шема учитавања заснована на УРЛ-у се користи за увоз НПМ модула. За приступ НПМ модулима постоји посебан УРЛ префикс „нпм:“, који се може користити на исти начин као и обични Дено модули. На пример, да бисте увезли НПМ модул, можете да наведете 'импорт { цхалк } из "нпм:цхалк@5";' и да покренете НПМ скрипт из командне линије - "дено рун --аллов-енв --аллов -прочитајте нпм:цреате- вите-ектра.”

Коришћење НПМ пакета у Дено-у је много лакше него у Ноде.јс, пошто нема потребе за претходно инсталирањем модула (модули се инсталирају када се апликација први пут покрене), нема пацкаге.јсон фајла и нема подразумеваних ноде_модулес директоријум (модули су кеширани у дељеном директоријуму, али је могуће вратити старо понашање помоћу опције „--ноде-модулес-дир“).

Апликације засноване на НПМ-у задржавају могућност коришћења Дено-ове контроле приступа, изолације и напредних могућности осетљивих на безбедност. Да би се супротставио нападима кроз упитне зависности, Дено подразумевано блокира све покушаје приступа систему из зависности и приказује упозорење о откривеним проблемима. На пример, када модул покуша да добије приступ за писање у /уср/бин/, биће приказан захтев за потврду за ову операцију: дено рун нпм:инсталл-малваре ⚠ ┌ Дено захтева приступ за упис у /уср/бин/. ├ Захтева `инсталл-малваре` ├ Покрени поново са --аллов-врите да заобиђеш овај упит. └ Дозволити? [и/н] (и = да, дозволи; н = не, одбије) >

Не-НПМ побољшања у новој верзији укључују ажурирање В8 машине за издавање 10.9, аутоматско откривање датотека са закључавањем, стабилизацију Дено.бенцх(), Дено.гид(), Дено.нетворкИнтерфацес(), Дено.системМемориИнфо() и Дено АПИ-ји..уид(), додавањем новог нестабилног АПИ-ја Дено.Цомманд() за покретање команди (универзална замена за Дено.спавн, Дено.спавнСинц и Дено.спавнЦхилд).

Главне карактеристике Дено-а:

  • Подразумевана конфигурација оријентисана на безбедност. Приступ датотекама, умрежавање и приступ варијаблама окружења су подразумевано онемогућени и морају бити експлицитно омогућени. Апликације се подразумевано покрећу у изолованим окружењима заштићеног окружења и не могу приступити системским могућностима без давања експлицитних дозвола;
  • Уграђена подршка за ТипеСцрипт изван ЈаваСцрипт-а. За проверу типа и генерисање ЈаваСцрипта користи се стандардни преводилац ТипеСцрипт, што доводи до пада перформанси у поређењу са ЈаваСцрипт рашчлањивањем у В8;
  • Рунтиме долази у облику једне самосталне извршне датотеке („дено“). Да бисте покренули апликације користећи Дено, потребно је само да преузмете једну извршну датотеку за своју платформу, величине око 30 МБ, која нема спољне зависности и не захтева никакву посебну инсталацију на систему. Штавише, дено није монолитна апликација, већ је колекција Руст сандука пакета (дено_цоре, русти_в8), који се могу користити засебно;
  • Приликом покретања програма, као и за учитавање модула, можете користити УРЛ адресирање. На пример, да бисте покренули програм велцоме.јс, можете користити команду „дено хттпс://дено.ланд/стд/екамплес/велцоме.јс“. Код са спољних ресурса се преузима и кешује на локалном систему, али се никада не ажурира аутоматски (ажурирање захтева експлицитно покретање апликације са заставицом „--релоад“);
  • Ефикасна обрада мрежних захтева преко ХТТП-а у апликацијама, платформа је дизајнирана за креирање мрежних апликација високих перформанси;
  • Могућност креирања универзалних веб апликација које се могу извршавати и у Дено-у иу обичном веб претраживачу;
  • Присуство стандардног скупа модула, чија употреба не захтева везивање за спољне зависности. Модули из стандардне колекције су прошли додатну ревизију и тестирање компатибилности;
  • Поред времена извршавања, Дено платформа такође делује као менаџер пакета и омогућава вам да приступите модулима преко УРЛ-а унутар кода. На пример, да бисте учитали модул, можете навести у коду „импорт * ас лог фром „хттпс://дено.ланд/стд/лог/мод.тс“. Датотеке преузете са спољних сервера преко УРЛ-а се кеширају. Везивање за верзије модула се одређује навођењем бројева верзија унутар УРЛ-а, на пример, „хттпс://унпкг.цом/[емаил заштићен]/дист/лилтест.јс";
  • Структура укључује интегрисани систем инспекције зависности (команда „дено инфо”) и помоћни програм за форматирање кода (дено фмт);
  • Све скрипте апликације могу се комбиновати у једну ЈаваСцрипт датотеку.

Извор: опеннет.ру

Додај коментар