a projekt kiadása , amely egy Node.js-hez hasonló platform az alkalmazások elkülönített végrehajtásához JavaScript és TypeScript nyelven, amely lehetővé teszi a böngészőtől független alkalmazások futtatását, például a szerveroldali kezelők létrehozását. A Deno a JavaScript motorját használja , amelyet a Node.js és a Chromium-alapú böngészők is alkalmaznak. A projekt kódja MIT licenc alatt áll. A projektet Ryan Dahl fejleszti (), a JavaScript platform, a Node.js létrehozója.
A JavaScript új runtime-jának létrehozásának egyik fő célja a biztonságosabb környezet biztosítása. A V8 motor körüli burkolat Rust nyelven készült, ami elkerüli a memória kezelésével kapcsolatos alacsony szintű hibákból adódó sebezhetőségeket, mint például a már felszabadított memória területekhez való hozzáférés, a null pointerek dereferálása és a pufferek túlcsordulása. A kérések nem blokkoló feldolgozására , amely lehetővé teszi az eseményalapú architektúrára épülő, magas teljesítményű alkalmazások létrehozását, amelyek támogatják a több szálas feldolgozást és az aszinkron hálózati kéréskezelést.
Fő Deno:
- a biztonságra összpontosítva az alapértelmezett konfigurációban. A fájlokhoz való hozzáférés, a hálózati lehetőségek és a környezeti változókhoz való hozzáférés alapértelmezés szerint blokkolva van, és kifejezett engedélyezést igényel;
- a JavaScript mellett a TypeScript nyelv beépített támogatása;
- A runtime egy önálló végrehajtható fájl formájában érkezik („deno”). Az alkalmazások Deno segítségével történő indításához elegendő a platform számára egy önálló futtatható fájl, körülbelül 10 MB méretű, külső függőségek nélkül, amely nem igényel külön telepítést a rendszeren;
- A program indításához, valamint a modulok betöltéséhez URL-alapú címzést lehet használni. Például a welcome.js program elindításához a következő parancsot használhatja: „deno https://deno.land/std/examples/welcome.js”. A külső forrásokból származó kódot letöltik és a helyi rendszeren gyorsítótárazva tárolják, de soha nem frissül automatikusan (frissítéshez kifejezetten el kell indítani az alkalmazást a „—reload” kapcsolóval);
- Hatékony HTTP hálózati kérések kezelése az alkalmazásokban, a platform a nagy teljesítményű hálózati alkalmazások készítésére lett tervezve;
- Lehetőség univerzális webalkalmazások létrehozására, amelyek Deno-ban és a hagyományos webböngészőben is futtathatók;
- A Deno runtime platform also acts as a package manager and allows referencing modules by URL within the code. For example, to load a module you can specify in the code 'import * as log from "https://deno.land/std/log/mod.ts"'. Files downloaded from external servers via URL are cached. Version binding of modules is determined by specifying version numbers within the URL, for instance, "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
- az integrált rendszer tartalmazza a függőségek ellenőrző rendszerét (a „deno info” parancsot) és egy kódfelhzámlálási segédprogramot (deno fmt).
- alkalmazásfejlesztők számára egy sor standard modulot, amelyeken további audit és kompatibilitási ellenőrzés történt;
- All application scripts can be combined into a single JavaScript file.
Differences from Node.js:
- Deno does not use the npm package manager
and does not rely on repositories; module addressing is done via URL or file paths, and modules can be hosted on any site; - Deno does not use 'package.json' to define modules;
- Different API: all asynchronous actions in Deno return a promise;
- Deno requires explicit definition of all necessary permissions for files, network, and environment variables;
- All unhandled errors lead to the termination of the application;
- A Deno az ECMAScript modul rendszerét használja, és a require() nem támogatott.
Forrás: opennet.ru
