Beruflich Dokumente
Kultur Dokumente
Deno (Software)
Deno (Software)
Inhaltsverzeichnis Basisdaten
Geschichte
Vergleich mit Node.js Maintainer denoland
Benutzung Entwickler Ryan Dahl
Deno war ursprünglich in Go geschrieben[11], wurde aber bald von Rust ersetzt. Grund dafür waren
Bedenken wegen der doppelten Laufzeitumgebung (der von Go und Deno selbst) und Garbage
Collection.[12]
Im November 2018 wurde eine Standardbibliothek erstellt, die an die Go Standardbibliothek angelehnt
war, die umfangreiche Werkzeuge bereitstellte, um Probleme mit den Node.js Abhängigkeitsbäumen zu
lösen.[13]
Die Version 1.0 von Deno wurde am 13. Mai 2020 veröffentlicht.[14]
Vergleich mit Node.js
Deno und Node.js sind beides Laufzeitumgebungen basierend auf Googles V8-JavaScript-Engine, die
auch in Google Chrome verwendet wird. Beide haben interne Ereignisschleifen und können über die
Kommandozeile aufgerufen werden, um Skripte und Hilfsbefehle auszuführen.
Benutzung
Der folgende Befehl führt die TypeScript-Datei main.ts ohne Lese-, Schreib- oder Netzwerkzugriff
(Sandbox mode) aus:
Zugriff aufs Dateisystem oder Netzwerk kann über bestimmte Attribute gewährt werden:
Um den Abhängigkeitsbaum des Skriptes anzuzeigen, kann der info Unterbefehl genutzt werden:
Ein einfaches Hallo-Welt-Programm sieht in Deno (wie auch in Node.js) wie folgt aus (das könnte z. B. in
der main.ts stehen):
console.log("Hello world");
Um die Deno eigene API zu benutzen, wird ein spezieller, globaler Namensraum genutzt, den es in
Browsern nicht gibt. Das Unix cat Programm könnte wie folgt programmiert werden:
/* cat.ts */
Die Deno.copy Funktion oben funktioniert so wie Gos io.Copy, während stdout
(Standardausgabe) das Ziel ist und file die Quelle. Um das Programm auszuführen, werden Leserechte
auf dem Dateisystem benötigt:
// `serve` Funktion gibt einen asynchronen Iterator zurück, der nach und Nach die Anfragen
zurück gibt
for await (const req of serve({ port: 8000 })) {
req.respond({ body: "Hello World\n" });
}
Wenn das Programm ausgeführt wird, lädt Deno automatisch die Standardbibliothek herunter und cachet
sie und kompiliert den Code.
Weblinks
Offizielle Website (https://deno.land/)
Deno (https://github.com/denoland/deno) auf GitHub
Einzelnachweise
1. Contributors, denoland/deno, Github. (https://github.com/denoland/deno/graphs/contributors)
Abgerufen am 5. Juli 2019 (englisch).
2. denoland/deno v1.17.1. (https://github.com/denoland/deno/releases/tag/v1.17.1) In: GitHub.
Abgerufen am 4. Januar 2022 (englisch).
3. deno/LICENSE at master. (https://github.com/denoland/deno/blob/master/LICENSE) In:
GitHub. Abgerufen am 5. Juli 2019 (englisch).
4. The MIT License. (https://opensource.org/licenses/MIT) In: Open Source Initiative.
17. September 2018, abgerufen am 17. September 2018 (englisch).
5. Deno: Secure V8 TypeScript Runtime from Original Node.js Creator. (https://www.infoq.com/
news/2018/12/deno-v8-typescript) In: InfoQ. Abgerufen am 17. Mai 2019 (englisch).
6. Silke Hahn: Webentwicklung: Deno 1.0 soll Node.js als Framework für Skriptsprachen
ersetzen. (https://www.heise.de/developer/meldung/Webentwicklung-Deno-1-0-soll-Node-js-
als-Framework-fuer-Skriptsprachen-ersetzen-4721288.html) 14. Mai 2020, abgerufen am
6. Juni 2020.
7. 10 Things I Regret About Node.js - Ryan Dahl - JSConf EU 2018. (https://www.youtube.com/
watch?v=M3BM9TB-8yA) 6. Juni 2018, abgerufen am 17. Mai 2019 (englisch).
8. Deno Manual. (https://deno.land/manual) In: deno.land. Abgerufen am 17. Mai 2019
(englisch).
9. Paul Krill: Ryan Dahl’s Node.js regrets lead to Deno. (https://www.infoworld.com/article/328
3250/ryan-dahls-nodejs-regrets-lead-to-deno.html) InfoWorld, 21. Juni 2018, abgerufen am
6. Juni 2020 (englisch).
10. Ryan Dahl: Design mistakes in Node. (https://github.com/denolib/awesome-deno/blob/mast
er/resources/design-mistakes-in-node/design-mistakes-in-node.pdf) In: Github. 6. Juni 2018,
abgerufen am 6. Juni 2020 (englisch).
11. denoland/deno, branch "golang". (https://github.com/denoland/deno/tree/golang) In: Github.
Abgerufen am 6. Juni 2020 (englisch).
12. Suggestion: Look into porting to Rust and using Tokio. (https://github.com/denoland/deno/iss
ues/205) In: GitHub. Abgerufen am 6. Juni 2020 (englisch).
13. Deno Standard Modules. (https://github.com/denoland/deno/tree/master/std) In: Github.
Abgerufen am 6. Juni 2020 (englisch).
14. Deno 1.0. (https://deno.land/v1) In: deno.land. Abgerufen am 14. Mai 2020.
Der Text ist unter der Lizenz „Creative Commons Attribution/Share Alike“ verfügbar; Informationen zu den Urhebern
und zum Lizenzstatus eingebundener Mediendateien (etwa Bilder oder Videos) können im Regelfall durch Anklicken
dieser abgerufen werden. Möglicherweise unterliegen die Inhalte jeweils zusätzlichen Bedingungen. Durch die
Nutzung dieser Website erklären Sie sich mit den Nutzungsbedingungen und der Datenschutzrichtlinie
einverstanden.
Wikipedia® ist eine eingetragene Marke der Wikimedia Foundation Inc.