Випуск 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

Додати коментар або відгук