Die Veröffentlichung der JavaScript-Plattform Deno 1.16, die fĂŒr die isolierte AusfĂŒhrung (ohne Nutzung eines Browsers) von Anwendungen in den Programmiersprachen JavaScript und TypeScript vorgesehen ist, hat stattgefunden. Das Projekt wird von Ryan Dahl, dem Autor von Node.js, vorangetrieben. Der Code der Plattform ist in der Programmiersprache Rust geschrieben und wird unter der MIT-Lizenz verbreitet. Fertige Builds wurden fĂŒr Linux, Windows und macOS bereitgestellt.
Das Projekt Àhnelt der Plattform Node.js und verwendet ebenfalls die JavaScript-Engine V8. Laut dem Autor von Node.js behebt es jedoch eine Reihe von architektonischen Fehlern seines VorgÀngers und zeichnet sich durch folgende Besonderheiten aus:
- Die Verwendung von Rust als Hauptprogrammiersprache, was, laut den Entwicklern, das Risiko von Schwachstellen verringert, die mit der Speicherverwaltung auf niedriger Ebene verbunden sind (PufferĂŒberlĂ€ufe, Use-after-free usw.);
- Deno nutzt keinen Paketmanager npm und keine package.json, sondern ermöglicht es dem Benutzer, Module durch Angabe der URL oder des Pfads zum zu installierenden Modul zu installieren. Dennoch bietet das Projekt mehrere Dienstprogramme zur Vereinfachung der Arbeit mit Drittanbieter-Modulen an;
- Anwendungen laufen isoliert in Sandboxes und haben keinen Zugriff auf Netzwerke, Umgebungsvariablen oder das Dateisystem, ohne ausdrĂŒcklich erteilte Berechtigungen;
- Die Architektur ermöglicht die Erstellung universeller Webanwendungen, die sowohl im Deno-System als auch in einem regulÀren Browser funktionieren können;
- Verwendung von âES Modulesâ und keine UnterstĂŒtzung fĂŒr require();
- Alle nicht vom Programmierer behandelten Fehler in der Webanwendung fĂŒhren zu ihrem sofortigen Abbruch;
- UnterstĂŒtzung von TypeScript zusĂ€tzlich zu JavaScript;
- Die vollstĂ€ndige GröĂe der einsatzbereiten Plattform betrĂ€gt 84 MB (im zip-Archiv 31 MB) in Form einer einzigen ausfĂŒhrbaren Datei;
- Im Lieferumfang enthalten sind ein System zur Auflösung von AbhÀngigkeiten und zur Codeformatierung;
- Fokussierung auf leistungsstarke Anwendungen.
Deno verarbeitet Anfragen im nicht-blockierenden Modus unter Verwendung der Tokio-Plattform, die zum Erstellen leistungsstarker, ereignisgesteuerter Anwendungen entwickelt wurde. Interessant ist auch, dass der integrierte HTTP-Server von Deno in TypeScript ĂŒber nativen TCP-Sockets implementiert ist, was sich positiv auf die Leistung von Netzwerkoperationen auswirkt.
In der neuen Version wird Folgendes hervorgehoben:
- Leistungsoptimierung (4 Patches);
- Behebung von mehr als 15 Fehlern, insbesondere unterstĂŒtzt der TLS-Client jetzt HTTP/2, das Kodierungssystem unterstĂŒtzt zusĂ€tzliche Kodierungsmarken usw.;
- Mehr als zwei Dutzend Neuerungen, darunter die Stabilisierung der zuvor getesteten Subsysteme Deno.startTls und Deno.TestDefinition.permissions, das Update des JS-Engines V8 auf Version 9.7 und die UnterstĂŒtzung fĂŒr React 17 JSX-Transformierungen.
Quelle: opennet.ru
