|
< Back | Wikipedia | Home | Dark Mode DenoMes informacio Lloc web deno.com (angles) Blog Blog oficial Stack Exchange Etiqueta Guia d'usuari Guia d'usuari Deno es un sistema en temps d'execucio per a Javascript i TypeScript, on esta basat en el motor de JavaScript V8 i en el llenguatge de programacio Rust. Creat per Ryan Dahl, creador original de NODE.JS, i esta centrat en la seguretat i productivitat. Va ser anunciat per Dahl en 2018 durant la seva xerrada "Coses de les quals em penedeixo sobre NODE.JS". Deno Explicitament pren la funcio de tots dos runtime i el sistema de paquets dins d'un mateix executable, en comptes de requerir un programa per a l'administracio de paquets per separat. Deno va ser anunciat en JSConf UE 2018 per Ryan Dahl en la seva xerrada "10 coses que m'alteren sobre NODE.JS". En la seva xerrada, Ryan va esmentar els seus remordiments sobre les decisions de disseny inicials amb NODE.JS, centrant la seva eleccio per no utilitzar promeses en el disseny de l'API, us de sistema de construccio antiquat GYP, node_modules i package.json Finalment va presentar el prototip de Deno, buscant fer les crides al sistema a traves de pas de missatges amb eines de serialitzacio com ara Protocol Buffers, i proporcionar banderes de linia d'ordres per a control d'acces. Deno va ser inicialment escrit en Go i utilitzat Protocol_Buffers per serialitzacio entre els costats privilegiats (Go, amb acces de trucada de sistema) i no-privilegiat (V8). Aixi i tot, Go va ser aviat reemplacat per Rust a causa de preocupacions per double runtime i la memoria brossa. Tokio es introduit en lloc de libuv com la plataforma conduida per esdeveniments (event drive) asincrona, i s'adopta FlatBuffers per a una serialitzacio i des-serialitzacio mes rapida "Zero Copy" pero mes tard a l'agost 2019, FlatBuffers era finalment tret despres publicats els benchmarks que intervenen una significativa sobrecarrega de la serialitzacio a l'abril el 2019. Una l'estil de la biblioteca estandard de Go, va ser creada al novembre 2018 per proporcionar una extensa quantitat d'utilitats i eines, parcialment solucionant el problema de NODE.JS de l'explosio de l'arbre de dependencies. El Deno 1.0 oficial va ser alliberat el 13 de maig de 2020. Deno busca ser un entorn de scripting productiu i segur per al programador modern. Similar a NODE.JS, Deno emfatitza en arquitectura manejada per esdeveniments, proveint un conjunt d'utilitats d'entrada sortida IO no bloquejant mes de les seves versions bloquejant. Deno pot ser usat per crear servidors web, dur a terme computacio cientifica, etc. Deno I NODE.JS es tots dos un runtime, basat en el motor de JavaScript v8 de Google, el mateix motor utilitzat en Google Chrome. Tots dos tenen bucles d'esdeveniments i ofereixan una interficie de linia de comandament per correr scripts i mes una amplia gamma d'utilitats de sistema. Les diferencies de Deno amb Node.js als seguents aspectes:
La seguent executa un script basic de Deno sense cap permis de lectura/escriptura/xarxa (mode sandbox): deno run main.tsBanderes explicites son requerides per exposar permis corresponent: deno run --allow-read --allow-net main.tsPer inspeccionar l'arbre de dependencia de l'script, utilitzeu la subcomanda info: deno info main.tsUn programari Hola mon basic a Deno s'assembla, es una cosa aixi: console.log("Hola mon");Deno proporciona un espai de nom global per a la majoria de les APIs de deno que no estan disponibles en el navegador. Un programa Cat de Unix podria ser implementat com segueix: /* cat.ts */ /* Deno APIs are exposed through the `Deno` namespace. */ const { stdout, open, copy, args } = Deno; // Top-level await is supported for (let i = 0; i < args.length; i++) { const filename = args[i]; // Obtains command-line arguments. const file = await open(filename); // Opens the corresponding file for reading. await copy(stdout, file); // Performs a zero-copy asynchronous copy from `file` to `stdout`. }La funcio Deno.copy de dalt treballa de manera similar com les IO de.Copy, on stdout (sortida estandard) es el Writer i file es el Reader. Per correr aquest programa, necessitem proporcionar el permis de lectura del sistema de fitxers: deno run --allow-read cat.ts myfileEl seguent script Deno implementa un servidor HTTP basic: // Imports `serve` from the remote Deno standard library, using URL. import { serve } from "https://deno.land/std@v0.21.0/http/server.ts"; // `serve` function returns an asynchronous iterator, yielding a stream of requests for await (const req of serve({ port: 8000 })) { req.respond({ body: "Hello World\n" }); }Quan corrent aquest programa, Deno automaticament descarrega i cau els fitxers de biblioteca estandards remots i compilar el codi. De manera semblant, podem correr un guio de biblioteca estandard (com un servidor de fitxers) directament sense explicitament descarregant, per proporcionar l'URL quan entrada filename (-Unes voltes sobre tots els permisos): $ deno run -A https://deno.land/std/http/file_server.ts Download https://deno.land/std/http/file_server.ts Compile https://deno.land/std/http/file_server.ts ... HTTP server listening on http://0.0.0.0:4500/
Source: ca.wikipedia.org |