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



Источник: http://www.opennet.ru/opennews/art.shtml? num=56129

© OpenNet