На цій сторінці показано неперевірені зміни
![]() | Тема цієї статтіможе не відповідатизагальним критеріям значущості Вікіпедії. Будь ласка, допоможіть підтвердити значущість,додавши посилання нанадійні вторинні джерела, які є незалежними для цієї теми. Якщо значущість залишиться непідтвердженою, стаття може бутиоб'єднана з іншою статтею,перенаправлена на іншу статтю абовилучена.(May 2019) |
![]() | |
Тип | 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:
denohttps://deno.land/std/examples/welcome.js[Архівовано 19 лютого 2020 уWayback Machine.]
Код з зовнішніх ресурсів завантажується і кешується на локальній системі, але ніколи автоматично не оновлюється (для поновлення потрібно явно запустити застосунок з прапором "--reload");
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.]";
Відмінності від Node.js: