Megjelent a Deno 1.16 JavaScript-platform, amely a böngésző használata nélkül képes a JavaScript és TypeScript nyelven írt alkalmazások futtatására. A projektet a Node.js alkotója, Ryan Dahl fejleszti. A platform kódja Rust programozási nyelven készült, és MIT licenc alatt terjesztik. Kész verziók állnak rendelkezésre Linux, Windows és macOS rendszerekhez.
A projekt hasonló a Node.js platformhoz, és a V8 JavaScript-motort használja, azonban a Node.js alkotója szerint kijavítja a megelőző hibákat és a következő különbségekkel rendelkezik:
- A Rust használata alapnyelvként, ami a fejlesztők véleménye szerint csökkenti az alacsony szintű memória-műveletekkel kapcsolatos sebezhetőségek kockázatát (például puffertúlcsordulás, use-after-free stb.);
- A Deno nem használ npm csomagkezelőt és package.json fájlt, a modulok telepítése a modul URL-jének vagy elérési útjának megadásával történik. Ennek ellenére a projekt számos segédeszközt kínál a külső modulokkal való munka megkönnyítésére;
- Az alkalmazások izolált környezetben futnak, és nem férnek hozzá a hálózathoz, környezeti változókhoz vagy a fájlrendszerhez, hacsak kifejezetten nem adnak erre engedélyt;
- Az architektúrában lehetőség van univerzális webalkalmazások létrehozására, amelyek képesek a Deno rendszerben és a szokásos böngészőben egyaránt működni;
- Az "ES Modules" használata és a require(); támogatás hiánya;
- Bármely, a fejlesztő által nem kezelt hiba a webalkalmazásban leálláshoz vezet;
- TypeScript támogatás a JavaScript mellett;
- A platform teljes mérete 84 MB (zip fájlban 31 MB) egyetlen végrehajtható fájl formájában;
- A csomag tartalmazza a függőségkezelő rendszert és a kódformázást;
- A nagy teljesítményű alkalmazásokra összpontosít.
A Deno a Tokio platform segítségével non-blocking módban kezeli a kéréseket, amely a nagy teljesítményű, eseményalapú architektúrák alapján készült alkalmazások létrehozására szolgál. Érdekes, hogy a Deno beépített HTTP-szervere TypeScript-ben valósul meg a natív TCP-szűkítők felett, ami kedvezően hat a hálózati műveletek teljesítményére.
Az új verzióban megjegyzésre került:
- Teljesítményoptimalizálás (4 javítás);
- Több mint 15 hiba javítása, különösen, hogy most a TLS-kliens támogatja a HTTP/2-t, a kódolási alrendszer támogatja a további kódolási címkéket, és még sok más;
- Több mint két tucat újítás, amelyek közül kiemelhető a korábban tesztelt Deno.startTls és Deno.TestDefinition.permissions alrendszerek stabilizálása, a V8 JavaScript-motor frissítése 9.7-es verzióra és a React 17 JSX átalakítások támogatása.
Forrás: opennet.ru
