Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

Deno

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.

Статус версії сторінки

На цій сторінці показано неперевірені зміни

Тема цієї статтіможе не відповідатизагальним критеріям значущості Вікіпедії. Будь ласка, допоможіть підтвердити значущість,додавши посилання нанадійні вторинні джерела, які є незалежними для цієї теми. Якщо значущість залишиться непідтвердженою, стаття може бутиоб'єднана з іншою статтею,перенаправлена на іншу статтю абовилучена.(May 2019)
Deno
ТипRun-time environment
АвторRyan Dahl
Розробникрізні
Перший випуск13 травня2018; 6 років тому (2018-05-13)[1]
Нестабільний випуск0.32.0 (3 лютого2020; 5 років тому (2020-02-03)[2])
Операційна системаLinux,macOS,Microsoft Windows
Мова програмуванняTypeScript,JavaScript,Rust,C++
ЛіцензіяMIT license[3][4]
Онлайн-документаціяdeno.land/manual(англ.) Редагувати інформацію у Вікіданих
Репозиторійhttps://github.com/denoland/deno
Вебсайтdeno.com Редагувати інформацію у Вікіданих

Deno — програмний проєкт, що пропонує схожу наNode.js платформу для відокремленого виконаннязастосунків на мовахJavaScript іTypeScript, яка може бути використана для виконання застосунків без прив'язки добраузеру, наприклад, для створення обробників, що працюють насервері. У Deno використовуєтьсяJavaScript-рушійV8, який також застосовується в Node.js і браузерах на основі проєктуChromium.

Код проєкту поширюється підліцензією MIT. Проєкт розвиваєРаян Дал (Ryan Dahl), творець JavaScript-платформи Node.js.

Особливості

[ред. |ред. код]

Однією з головних цілей створення нового runtime для JavaScript є надання більш захищеного оточення. Для підвищення безпеки обв'язка навколо рушія V8 написана на мовіRust, що дозволяє уникнути багатьох вразливостей, що виникають через низькорівневу роботу з пам'яттю, таких як звернення до області пам'яті після її звільнення, розіменування нульових вказівників і вихід за межі буфера. Для обробки запитів в неблокуючому режимі застосовується платформа Tokio, також написана на мові Rust. Tokio дозволяє створювати високопродуктивні застосунки на основі подієво-орієнтованої архітектури (Event-driven), що підтримуютьбагатонитевість і обробку мережевих запитів в асинхронному режимі.

Основні особливості Deno:

  • Орієнтація на безпеку в конфігурації за замовчуванням. Звернення до файлів, мережеві можливості і доступ до змінних оточення за замовчуванням блоковані і вимагають явного включення;
  • Вбудована підтримка мови TypeScript крім JavaScript;
  • Runtime поставляється в формі одного самодостатнього виконуваного файлу ("deno"). Для запуску застосунків за допомогою Deno досить завантажити для своєї платформи один виконуваний файл, розміром близько 10 Мб, що не мають зовнішніх залежностей і не вимагає якогось особливого установки в систему;
  • При запуску програми, а також для завантаження модулів можна використовувати адресацію черезURL. Наприклад, для запуску програми welcome.js можна використовувати команду
denohttps://deno.land/std/examples/welcome.js[Архівовано 19 лютого 2020 уWayback Machine.]

Код з зовнішніх ресурсів завантажується і кешується на локальній системі, але ніколи автоматично не оновлюється (для поновлення потрібно явно запустити застосунок з прапором "--reload");

  • Ефективна обробка в застосунках мережевих запитів поHTTP, платформа розрахована на створення високопродуктивних мережевих застосунків;
  • Можливість створення універсальних вебзастосунків, які можуть виконатися як в Deno, так і в звичайному веббраузері;
  • Крім runtime платформа Deno також виконує роль пакетного менеджера і дозволяє всередині коду звертатися до модулів по URL. Наприклад, для завантаження модуля можна вказати в коді
import * as log from "https://deno.land/std/log/mod.ts[Архівовано 19 лютого 2020 уWayback Machine.]"

Файли, завантажені з зовнішніх серверів по URL, кешуються. Прив'язка до версій модулів визначаються через вказування номерів версій всередині URL, наприклад, "https://unpkg.com/liltest@0.0.5/dist/liltest.js[Архівовано 19 лютого 2020 уWayback Machine.]";

  • До складу інтегрована система інспектування залежностей (команда "deno info") і утиліта для форматування коду (deno fmt).
  • Для розробників застосунків запропонований набір стандартних модулів, які пройшли додатковий аудит і перевірку на сумісність;
  • Всі скрипти застосунку можуть бути об'єднані в один JavaScript файл.

Відмінності від Node.js:

  • Deno не використовує пакетний менеджерnpm і не прив'язується до репозиторіїв, адресація модулів здійснюється через URL або по файловому шляху, а самі модулі можуть розміщуватися на будь-якому сайті;
  • РізницяAPI, всі асинхронні дії в Deno повертають promise;
  • Deno вимагає явного визначення всіх необхідних повноважень для файлів, мережі та змінних оточення;
  • Всі помилки, які не забезпечені обробниками, призводять до завершення виконання програми;
  • У Deno застосовується система модулівECMAScript і не підтримуєтьсяrequire().

Виноски

[ред. |ред. код]
  1. Contributors, denoland/deno, Github. Архіворигіналу за 30 травня 2019. Процитовано 5 липня 2019.
  2. Deno 0.32.0. Архіворигіналу за 22 лютого 2020. Процитовано 3 лютого 2020 — черезGitHub.
  3. deno/LICENSE at master.GitHub. Архіворигіналу за 29 травня 2019. Процитовано 5 липня 2019.
  4. The MIT License.Open Source Initiative. 17 вересня 2018. Архіворигіналу за 9 травня 2020. Процитовано 17 вересня 2018.

Посилання

[ред. |ред. код]
Аналіз коду
Компілятори
Концепти
Дебагери
Генератори документації
Редактори коду (порівняння)
Фреймворки
Пов'язанітехнології
Менеджери пакетів
Серверний JS
Тестування
Персоналії
Отримано зhttps://uk.wikipedia.org/w/index.php?title=Deno&oldid=38709051
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2025 Movatter.jp