Выпуск JavaScript-платформы Deno 1.16

Адбыўся рэліз JavaScript-платформы Deno 1.16, прызначанай для адасобленага выканання (без выкарыстання браўзэра) прыкладанняў, напісаных на мовах JavaScript і TypeScript. Праект развіваецца аўтарам Node.js Раянам Далем (Ryan Dahl). Код платформы напісаны на мове праграмавання Rust і распаўсюджваецца пад ліцэнзіяй MIT. Гатовыя зборкі падрыхтаваны для Linux, Windows і macOS.

Праект падобны з ​​платформай Node.js і, падобна яму, выкарыстоўвае JavaScript-рухавічок V8, аднак, па словах аўтара Node.js, выпраўляе шэраг архітэктурных пралікаў свайго папярэдніка і адрозніваецца ад яго наступнымі нюансамі:

  • Выкарыстанне ў якасці асноўнай мовы Rust, што, па меркаванні распрацоўнікаў, памяншае рызыку з'яўлення ўразлівасцяў, злучаных з нізкаўзроўневай працай з памяццю (перапаўненне буфера, use-after-free і інш.);
  • Deno не выкарыстоўвае пакетны мэнэджар npm і package.json, прапаноўваючы карыстачу ўсталёўку модуляў шляхам указання URL або шляхі да модуля для ўсталёўкі. Тым не менш, праектам прапануецца некалькі ўтыліт для спрашчэння працы са іншымі модулямі;
  • Прыкладанні запускаюцца адасоблена ў пясочніцах і не маюць доступу да сеткі, зменным асяроддзі і файлавай сістэме, без відавочна выдадзеных паўнамоцтваў;
  • У архітэктуры закладзена магчымасць стварэння ўніверсальных вэб-прыкладанняў, якія здольныя працаваць як у сістэме Deno, так і ў звычайным браўзэры;
  • Выкарыстанне "ES Modules" і адсутнасць падтрымкі require();
  • Любыя неапрацаваныя праграмістам памылкі ў вэб-дадатку прыводзяць да іх прымусовага завяршэння;
  • Падтрымка TypeScript апроч JavaScript;
  • Поўны памер гатовай да выкарыстання платформы – 84 МБ (у zip-архіве – 31 МБ) у выглядзе аднаго выкананага файла;
  • У камплекце прапануецца сістэма дазволу залежнасцяў і фарматавання кода;
  • Арыентаваць на высокапрадукцыйныя прыкладанні.

Dino апрацоўвае запыты ў неблакіруючым рэжыме з ужываннем платформы Tokio, прызначанай для стварэння высокапрадукцыйных прыкладанняў на аснове падзейна-арыентаванай (event-driven) архітэктуры. Таксама цікава, што ўбудаваны HTTP-сервер Deno рэалізаваны на TypeScript па-над натыўнымі TCP-сокетамі, што станоўча адбіваецца на прадукцыйнасці сеткавых аперацый.

У новай версіі адзначаецца:

  • Аптымізацыя прадукцыйнасці (4 патча);
  • Выпраўленне больш за 15 памылак, у прыватнасці, зараз TLS-кліент падтрымлівае HTTP/2, падсістэма кадоўкі падтрымлівае дадатковыя пазнакі кадавання і інш.;
  • Больш за два дзясяткі новаўвядзенняў, з якіх можна адзначыць стабілізацыю раней тэставых падсістэм Deno.startTls і Deno.TestDefinition.permissions, абнаўленне JS-рухавічка V8 да версіі 9.7 і падтрымку пераўтварэнняў React 17 JSX.

Крыніца: opennet.ru

Дадаць каментар