Аутор Ноде.јс представио је безбедну ЈаваСцрипт платформу Дено 1.0

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

Значајан број верзије повезан је са стабилизацијом АПИ-ја у Дено именском простору, који су одговорни за интеракцију апликација са ОС-ом. Софтверски интерфејси који су до сада није стабилизовано, су подразумевано скривени и доступни само када се раде у „--нестабилном“ режиму. Како се нове верзије формирају, такви АПИ-ји ће постепено постати стабилни. АПИ у глобалном именском простору, који укључује уобичајене функције као што су сетТимеоут() и фетцх(), је што је могуће ближи АПИ-ју конвенционалних веб претраживача и развијен је у складу са веб стандардима за претраживаче. АПИ-ји које обезбеђује Руст, који се користе директно у коду платформе, као и интерфејс за развој додатака за Дено рунтиме, још увек нису стабилизовани и настављају да се развијају.

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

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

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

Разлике од Ноде.јс:

  • Дено не користи нпм менаџер пакета
    и није везан за спремишта, модули се адресирају преко УРЛ-а или путем путање датотеке, а сами модули се могу поставити на било коју веб локацију;
  • Дено не користи "пацкаге.јсон" за дефинисање модула;
  • АПИ разлика, све асинхроне акције у Дено-у враћају обећање;
  • Дено захтева експлицитну дефиницију свих потребних дозвола за датотеке, мреже и променљиве окружења;
  • Све грешке које нису обезбеђене руковаоцима доводе до гашења апликације;
  • Дено користи систем модула ЕЦМАСцрипт и не подржава рекуире();
  • Дено-ов уграђени ХТТП сервер је написан у ТипеСцрипт-у и ради на врху изворних ТЦП сокета, док је ХТТП сервер Ноде.јс написан у Ц-у и обезбеђује везе за ЈаваСцрипт. Дено-ови програмери су се фокусирали на оптимизацију целог слоја ТЦП соцкета и обезбеђивање општијег интерфејса. Дено ХТТП сервер обезбеђује нижу пропусност, али гарантује предвидљиво ниско кашњење. На пример, у тесту је једноставна апликација заснована на Дено ХТТП серверу била у стању да обради 25 хиљада захтева у секунди са максималном латенцијом од 1.3 милисекунди. У Ноде.јс-у, слична апликација је обрађивала 34 хиљаде захтева у секунди, али су се латенције кретале од 2 до 300 милисекунди.
  • Дено није компатибилан са пакетима за Ноде.јс (НПМ), али се развија засебно међуслој ради компатибилности са стандардном библиотеком Ноде.јс, како се развија, све више апликација написаних за Ноде.јс ће моћи да се покреће у Дено-у.
  • Извор: опеннет.ру

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