Deno | |
---|---|
Sorts | Körning |
Författare | Ryan Dahl |
Utvecklaren | Deno Company [1] och bidragsgivare |
Skrivet i | TypeScript , JavaScript , Rust , C++ |
Operativ system | Linux , macOS , Microsoft Windows |
Första upplagan | 13 maj 2018 [2] |
senaste versionen |
|
Licens | MIT-licens [3] [4] |
Hemsida | deno.land _ |
Mediafiler på Wikimedia Commons |
Deno är en mjukvaruplattform, runtime för JavaScript och TypeScript , baserad på V8 JavaScript-motorn och skriven i programmeringsspråket Rust. Deno-projektet skapades av Ryan Dahl , skapare av Node.js. [6] Deno kombinerar funktionaliteten hos en runtime och en pakethanterare . [7] [8]
Deno-projektet tillkännagavs av Ryan Dahl i "10 Things I Regret About Node.js" på JSConf EU 2018. [9] I detta föredrag beklagade Dahl ett antal arkitektoniska beslut som han själv hade tagit i Node. js. [10] I slutet av rapporten presenterade han Deno-prototypen.
Deno skrevs ursprungligen i Go och använde Protocol Buffers för att utbyta meddelanden mellan den privilegierade delen av motorn (skriven i Go och har tillgång till systemfunktionsanrop) och den oprivilegierade delen (den V8-baserade JavaScript-runtime). [11] Men Go ersattes snart av Rust på grund av problem som orsakades av att ha två körtider i samma process, var och en med sin egen sopsamlare . [12] Libuv-biblioteket som implementerar asynkron händelsehantering ersattes av Tokio, [13] och ett experiment gjordes för att ersätta Protocol Buffers -teknologin med Flat Buffers, vilket ansågs misslyckat på grund av prestandaproblem. [14] [15] [16]
Standardbiblioteket, baserat på standardbiblioteket för programmeringsspråket Go, introducerades i november 2018. Detta steg togs i ett försök att undvika problemet som fanns i Node.js runtime - på grund av bristen på standardbiblioteket, utvecklare som använder Node.js måste inkludera externa beroenden i sina projekt för att lösa grundläggande problem. [17]
Den officiella versionen av Deno 1.0 släpptes den 13 maj 2020 [18]
Den 29 mars 2021 tillkännagavs skapandet av Deno. Projektet fick ekonomiskt stöd från Shasta Ventures, Mozilla Corporation och flera andra företag. Bolaget bildades för att säkerställa den fortsatta utvecklingen av Deno samt utvecklingen av kommersiella lösningar baserade på tekniken.
Denos mål är att skapa en ergonomisk körtidsmiljö för den moderna programmeraren. [19] I likhet med Node.js implementerar Deno en händelsestyrd arkitektur genom att tillhandahålla en uppsättning icke-blockerande I/O-kontrollmetoder. Deno kan användas för att skapa webbservrar , utföra vetenskapliga beräkningar, etc. [20]
Deno och Node.js är körtider baserade på V8 JavaScript-motorn som används av Google Chrome . Båda körtiderna är baserade på händelseloopbearbetning och tillhandahåller kommandoradsgränssnitt för att köra skript.
De huvudsakliga skillnaderna mellan Deno och Node.js är följande: [19]