Доступна платформа Deno 2.0, развиваемая автором Node.js

Публикувано е издание на платформата Deno 2.0, предназначена за самостоятелно изпълнение на сървърни приложения на езиците JavaScript и TypeScript, използвайки движка V8, който се прилага в браузери, базирани на Chromium. Проектът Deno се развива от Райън Дал (Ryan Dahl), създателят на Node.js, с цел да предостави по-защитена среда и да поправи концептуалните грешки, допуснати в архитектурата на Node.js. За повишаване на безопасността, обвивката около движка V8 е написана на езика Rust, а за обработка на заявки в неблокиращ режим се използва платформата Tokio. Кодът на проекта се разпространява под лиценз MIT. Сборките са подготвени за Linux, Windows и macOS.

При подготовката на новата версия, основното внимание беше насочено към съвместимостта със старата инфраструктура на JavaScript и разширяването на спектъра от поддържани JavaScript-проекти, без да се пожертва безопасността. Сред промените:

  • Реализирана е обратна съвместимост с Node.js и npm, позволяваща стартиране на немодифицирани приложения, създадени за Node.js. Поддръжката на Node.js също така позволява постепенно прехвърляне на съществуващи проекти от Node.js към Deno или свързване на зависимости от NPM към Deno-проекти чрез указване на спецификатора 'npm:' при импортиране на пакети в deno.json.
  • Добавена е вградена поддръжка за файла package.json и директорията с модули node_modules, прилагани в Node.js.
  • Обезпечена е поддръжката на частни NPM-репозитории, определени чрез файлове '.npmrc'.
  • Добавена е поддръжка на популярни JavaScript-фреймворкове, като Next.js, Astro, Remix, Angular, SvelteKit и QwikCity.
  • Добавена е поддръжка на работни пространства npm (workspace) и монорепозитории (monorepo) с отделна обработка на зависимости.
  • Добавени са нови команди за управление на пакети: 'deno install' за инсталиране на зависимости, 'deno add' за добавяне на пакети в package.json или deno.json, 'deno remove' за изтриване на пакети. Отбелязва се, че 'deno install' работи приблизително 15% по-бързо от npm при отсъствие на пакети в кеша и 90% по-бързо при наличие на пакет в кеша (поддържа се както node_modules, така и собствен глобален кеш).
  • Стабилизирана е стандартната библиотека.
  • Обезпечен е дълъг цикъл на поддръжка (LTS).
  • Представен е JSR — репозиторий с JavaScript и TypeScript библиотеки, които могат да се използват в различни JavaScript Runtime.
  • В командата 'deno fmt' е добавена възможността за форматиране на съдържание в форматите HTML, CSS и YAML.
  • В командата «deno lint» е добавена поддръжка на специфични за Node.js правила и корекции.
  • В командата «deno test» е реализирана възможността за стартиране на тестове, създадени с използването на node:test.
  • В командата «deno task» е добавена поддръжка за стартиране на скриптове чрез package.json.
  • В командата «deno compile» се е появила възможността за заверка на кода с цифров подпис.
  • В командата «deno serve» е реализирано паралелизиране на операциите на HTTP-сървърите с използване на няколко ядра CPU.
  • В командата «deno coverage» е добавена поддръжка за запазване на отчети в HTML формат.
  • Извършена е оптимизация на производителността.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Основни характеристики на Deno:

  • Ориентация за сигурност в конфигурацията по подразбиране. Обращенията към файлове, мрежовите възможности и достъпът до променливи от среда по подразбиране са блокирани и изискват явно включване. Приложенията по подразбиране се стартират в изолирани среда за тестване и не могат да получат достъп до системни функции без предоставяне на явни права;
  • Вградена поддръжка на TypeScript освен JavaScript. За проверка на типове и генериране на JavaScript се използва собствен компилатор TypeScript, което води до намаление на производителността в сравнение с парсинга на JavaScript в V8;
  • Рuntime идва под формата на един самостоятелен изпълним файл («deno»). За стартиране на приложения с Deno е достатъчно да изтеглите един изпълним файл за вашата платформа, с размер около 40 MB, който няма външни зависимости и не изисква специална инсталация в системата. В същото време deno не е монолитно приложение, а представлява колекция от crate-пакети на Rust (deno_core, rusty_v8), които могат да се използват поотделно;
  • При стартиране на програмата, а също така за зареждане на модули, може да се използва адресиране чрез URL. Например, за стартиране на програмата welcome.js може да се използва командата "deno https://deno.land/std/examples/welcome.js". Кодът от външни ресурси се зарежда и кешира на локалната система, но никога не се обновява автоматично (за обновяване е необходимо явно да се стартира приложението с флага "—reload");
  • Ефективна обработка на HTTP мрежови заявки, платформата е проектирана за създаване на високопроизводителни мрежови приложения;
  • Възможност за създаване на универсални уеб-приложения, които могат да се изпълняват както в Deno, така и в обикновен уеб браузър;
  • Наличие на стандартен набор от модули, употребата на които не изисква зависимост от външни ресурси. Модулите от стандартната колекция са преминали допълнителен одит и проверка за съвместимост;
  • Освен runtime, платформата Deno също така изпълнява ролята на пакетен мениджър и позволява вътре в кода да се обръщате към модули по URL. Например, за зареждане на модул можете да укажете в кода "import * as log from "https://deno.land/std/log/mod.ts". Файловете, заредени от външни сървъри по URL, се кешират. Привързаността към версиите на модулите се определя чрез указания за номера на версиите вътре в URL, например, "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
  • Ориентация към използване на уеб стандарти, поддръжка на Promise, fetch и ECMAScript модули.
  • Съвместимост с пакети, разположени в хранилището NPM и създадени за платформата Node.js.
  • Вградената система за инспектиране на зависимости (командата «deno info») и инструментът за форматиране на код (deno fmt) са интегрирани.
  • Всички скриптове на приложението могат да бъдат обединени в един JavaScript файл.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster