Доступна платформа Deno 2.0, развиваемая автором Node.js

Die Veröffentlichung der Plattform Deno 2.0, die für die isolierte Ausführung von Serveranwendungen in den Programmiersprachen JavaScript und TypeScript unter Verwendung der V8-Engine, die in Chromium-basierten Browsern verwendet wird, vorgesehen ist, wurde bekannt gegeben. Das Projekt Deno wird von Ryan Dahl, dem Schöpfer von Node.js, weiterentwickelt, mit dem Ziel, eine sicherere Umgebung bereitzustellen und konzeptionelle Fehler in der Architektur von Node.js zu beheben. Um die Sicherheit zu erhöhen, wurde die Umgebung um die V8-Engine in der Programmiersprache Rust entwickelt, und für die Bearbeitung von Anfragen im nicht-blockierenden Modus wird die Plattform Tokio verwendet. Der Code des Projekts wird unter der MIT-Lizenz veröffentlicht. Die Builds sind für Linux, Windows und macOS verfügbar.

Bei der Vorbereitung des neuen Zweigs wurde ein besonderer Fokus auf die Kompatibilität mit der alten JavaScript-Infrastruktur und die Erweiterung des Spektrums unterstützter JavaScript-Projekte gelegt, ohne die Sicherheit zu gefährden. Zu den Änderungen gehören:

  • Die Rückwärtskompatibilität mit Node.js und npm wurde implementiert, wodurch unmodifizierte Anwendungen, die für Node.js erstellt wurden, ausgeführt werden können. Die Unterstützung von Node.js ermöglicht es auch, bestehende Projekte schrittweise von Node.js auf Deno zu migrieren oder Deno-Projekten Abhängigkeiten aus NPM hinzuzufügen, indem der Spezifikator „npm:“ beim Import von Paketen in den deno.json angegeben wird.
  • Eine integrierte Unterstützung für die Datei package.json und das Verzeichnis mit node_modules-Modulen, die in Node.js verwendet werden, wurde hinzugefügt.
  • Die Unterstützung für private NPM-Repositorys, die über „.npmrc“-Dateien definiert sind, wurde bereitgestellt.
  • Es wurde Unterstützung für beliebte JavaScript-Frameworks wie Next.js, Astro, Remix, Angular, SvelteKit und QwikCity hinzugefügt.
  • Die Unterstützung für npm-Arbeitsbereiche (workspace) und Monorepos (monorepo) mit separater Verarbeitung von Abhängigkeiten wurde hinzugefügt.
  • Neue Paketverwaltungsbefehle wurden hinzugefügt: „deno install“ zum Installieren von Abhängigkeiten, „deno add“ zum Hinzufügen von Paketen in package.json oder deno.json, „deno remove“ zum Entfernen von Paketen. Es wird bemerkt, dass „deno install“ etwa 15 % schneller als npm arbeitet, wenn keine Pakete im Cache vorhanden sind, und 90 % schneller, wenn ein Paket im Cache vorhanden ist (sowohl node_modules als auch ein eigener globaler Cache werden unterstützt).
  • Die Standardbibliothek wurde stabilisiert.
  • Ein langer Supportzeitraum (LTS) wurde gewährleistet.
  • JSR wurde eingeführt – ein Repository mit JavaScript- und TypeScript-Bibliotheken, die in verschiedenen JavaScript-Runtime-Umgebungen verwendet werden können.
  • Der Befehl „deno fmt“ bietet nun die Möglichkeit, Inhalte in den Formaten HTML, CSS und YAML zu formatieren.
  • Der Befehl „deno lint“ hat die Unterstützung für Node.js-spezifische Regeln und Korrekturen erhalten.
  • Im Team „deno test“ wurde die Möglichkeit implementiert, Tests auszuführen, die mit node:test erstellt wurden.
  • Im Team „deno task“ wurde die Unterstützung zur Ausführung von Skripten über package.json realisiert.
  • Im Team „deno compile“ besteht jetzt die Möglichkeit, Code mit einer digitalen Signatur zu versehen.
  • Im Team „deno serve“ wurde das Parallelisieren von HTTP-Serveroperationen unter Nutzung mehrerer CPU-Kerne umgesetzt.
  • Im Team „deno coverage“ wurde die Unterstützung zur Speicherung von Berichten im HTML-Format eingeführt.
  • Die Leistung wurde optimiert.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Die Hauptmerkmale von Deno:

  • Sicherheitsorientierte Voreinstellungen. Zugriffe auf Dateien, Netzwerkfunktionalitäten und Umgebungsvariablen sind standardmäßig blockiert und erfordern eine explizite Aktivierung. Anwendungen werden in isolierten Sandbox-Umgebungen ausgeführt und haben ohne ausdrückliche Berechtigungen keinen Zugriff auf Systemfunktionen;
  • Integrierte Unterstützung für die Programmiersprache TypeScript neben JavaScript. Die Typprüfung und die Generierung von JavaScript erfolgen über den nativen TypeScript-Compiler, was zu einer Leistungsminderung im Vergleich zur Verarbeitung von JavaScript in V8 führt;
  • Die Laufzeit wird in Form einer einzigen, eigenständigen ausführbaren Datei („deno“) bereitgestellt. Um Anwendungen mit Deno auszuführen, reicht es aus, die ausführbare Datei für Ihre Plattform herunterzuladen, die etwa 40 MB groß ist, ohne externe Abhängigkeiten und ohne besondere Installation im System. Dabei ist Deno keine monolithische Anwendung, sondern eine Sammlung von Crate-Paketen in Rust (deno_core, rusty_v8), die einzeln verwendet werden können.
  • Beim Starten des Programms sowie zum Laden von Modulen kann die Adressierung über URLs verwendet werden. Zum Beispiel kann das Programm welcome.js mit dem Befehl „deno https://deno.land/std/examples/welcome.js“ gestartet werden. Der Code von externen Ressourcen wird auf dem lokalen System heruntergeladen und zwischengespeichert, jedoch nie automatisch aktualisiert (für ein Update muss die Anwendung ausdrücklich mit dem Flag „—reload“ gestartet werden);
  • Effiziente Verarbeitung von HTTP-Netzwerkanfragen ist die Plattform ausgelegt auf die Erstellung von hochperformanten Netzwerk-Anwendungen;
  • Die Möglichkeit zur Erstellung universeller Webanwendungen, die sowohl in Deno als auch in einem regulären Webbrowser ausgeführt werden können;
  • Verfügbarkeit eines Standardsatzes von Modulen, deren Verwendung keine Bindung an externe Abhängigkeiten erfordert. Die Module aus der Standardkollektion haben eine zusätzliche Überprüfung und Kompatibilitätsprüfung bestanden;
  • Neben der Laufzeitumgebung fungiert die Deno-Plattform auch als Paketmanager und ermöglicht es, innerhalb des Codes Module über URLs anzusprechen. Zum Beispiel kann ein Modul im Code mit „import * as log from „https://deno.land/std/log/mod.ts“ geladen werden. Dateien, die von externen Server Über die URL werden sie im Cache gespeichert. Die Bindung an die Modulversionen erfolgt über die Versionsnummern in der URL, zum Beispiel „https://unpkg.com/liltest@0.0.5/dist/liltest.js“;
  • Fokus auf die Nutzung von Web-Standards, Unterstützung für Promise, fetch und ECMAScript-Module.
  • Kompatibilität mit in dem NPM-Repository gehosteten Paketen, die für die Node.js-Plattform erstellt wurden.
  • In das System ist ein Abhängigkeitsinspektionssystem integriert (Befehl „deno info“) sowie ein Tool zur Codeformatierung (deno fmt);
  • Alle Anwendungsskripte können in einer einzigen JavaScript-Datei zusammengefasst werden.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster