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

Kate

Administrator
Команда форума
Состоялся релиз 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.
 
Сверху