Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Deno (software)

From Wikipedia, the free encyclopedia
Secure JavaScript and TypeScript runtime
Deno
Logo used since 2024
Original authorRyan Dahl
DevelopersDeno Land Inc[1] and contributors
Initial releaseMay 13, 2018; 7 years ago (2018-05-13)[2]
Stable release
2.6.9[3] Edit this on Wikidata / 10 February 2026; 2 days ago (10 February 2026)
Written inRust,TypeScript,JavaScript
Operating systemLinux,macOS,Microsoft Windows
TypeRuntime environment
LicenseMIT License[4]
Websitedeno.com Edit this on Wikidata
Repositorygithub.com/denoland/deno

Deno (/dn/[5]) is aruntime forJavaScript,TypeScript, andWebAssembly that is based on theV8 JavaScript engine and theRust programming language. Deno was co-created byRyan Dahl, the creator ofNode.js[6], and Bert Belder.[7]

Deno explicitly takes on the role of both runtime andpackage manager within a singleexecutable, rather than requiring a separatepackage-management program.[5][8]

History

[edit]

Deno was announced at JSConf EU 2018 byRyan Dahl in his talk "10 Things I Regret About Node.js".[9] In his talk, Dahl mentioned his regrets about the initial design decisions with Node.js, focusing on his choices of not usingpromises inAPI design, usage of the legacy build systemGYP, node_modules and package.json, leaving outfile extensions, magical module resolution with index.js and breaking the sandboxed environment of V8.[10] He eventually presented the prototype of Deno, aiming to achieve system call bindings through message passing with serialization tools such asProtocol Buffers, and to provide command line flags foraccess control.

Deno was initially written inGo and usedProtocol Buffers for serialization between privileged (Go, with system call access) and unprivileged (V8) sides.[11] However, Go was soon replaced withRust due to concerns of double runtime andgarbage collection pressure.[12]Tokio was introduced in place oflibuv as the asynchronous event-driven platform,[13] andFlatBuffers was adopted for faster, "zero-copy" serialization and deserialization[14] but later in August 2019, FlatBuffers was removed[15] after publishing benchmarks that measured a significant overhead of serialization in April 2019.[16]

A standard library, modeled after Go's standard library, was created in November 2018 to provide extensive tools and utilities, partially solving Node.js'dependency tree explosion problem.[17]

The official Deno 1.0 was released on May 13, 2020.[18]

Deno Deploy, inspired byCloudflare Workers,[19] was released on June 23, 2021.[20] Announced May 4, 2022 Beta 4 improved the dashboard and added billing functionality.[21]

Deno Fresh 1.0 was announced June 28, 2022.[22] It features a new full stack web framework for Deno that by default sends zero JavaScript to the client. The framework has no build step which allows for an order of magnitude improvements in deployment times. Version 1.1 was released September 8, 2022.[23]

Deno SaaSKit beta was announced April 4, 2023.[24] It is an open-source, modern SaaS template built with Fresh and Deno.

Deno 2 was released October 9, 2024.[25] It primarily brings Node.js compatibility improvements and removes deprecated features.

Overview

[edit]

Deno aims to be a productive and securescripting environment for the modern programmer.[5] Similar to Node.js, Deno emphasizesevent-driven architecture, providing a set ofnon-blocking core I/O utilities, along with their blocking versions. Deno could be used to createweb servers, perform scientific computations, etc. Deno isopen source software under theMIT License.[26]

Comparison with Node.js

[edit]

Deno and Node.js are both runtimes built on theV8 JavaScript engine developed by the Chromium Project, the engine used forChromium andGoogle Chrome web browsers. They both have internalevent loops and providecommand-line interfaces for running scripts and a wide range of system utilities.

Deno mainly deviates from Node.js in the following aspects:[5]

  1. Supports only ES Modules like browsers where Node.js supports both ES Modules andCommonJS. CommonJS support in Deno is possible by using a compatibility layer.[27][28]
  2. SupportsURLs for loading local or remote dependencies, similar tobrowsers, and uses module specifiers likenpm: andnode: to import NPM or polyfill Node.JS modules. Node.js supports both URLs[29] and modules.
  3. Does not require a package manager for resource fetching, thus no need for a registry likenpm.[30]
  4. Supports TypeScript out of the box,[31] using a snapshotted TypeScriptcompiler or the swc compiler[32] with caching mechanisms.
  5. Aims for better compatibility with browsers with a wide range of Web APIs.
  6. Restricts file system and network access by default in order to run sandboxed code.
  7. Supports a single API to utilize promises,ES6 and TypeScript features whereas Node.js supports both promise and callback APIs.
  8. Minimizes core API size, while providing a large standard library with no external dependencies.
  9. Uses message passing channels for invoking privileged system APIs and using bindings.

Funding

[edit]

On March 29, 2021, Deno Land Inc was announced, with backing in millions of dollars fromShasta Ventures,Mozilla Corporation and a few others. It was established to further the development of Deno and provide a commercial offering to users.[1]

A year on, Deno announced a further $21 million in Series A funding led bySequoia Capital.[33]

References

[edit]
  1. ^abRyan Dahl, Bert Belder (2021-03-29)."Announcing the Deno Company".
  2. ^"Contributors, denoland/deno, Github".GitHub. Retrieved5 July 2019.
  3. ^denoland."Release v2.6.9 · denoland/deno". Retrieved11 February 2026.
  4. ^"deno/LICENSE.md at main".GitHub. Retrieved24 September 2025.
  5. ^abcd"Deno Manual".deno.com. Retrieved2019-05-17.
  6. ^Schiemann, Dylan (December 26, 2018)."Deno: Secure V8 TypeScript Runtime from Original Node.js Creator".InfoQ.Archived from the original on May 17, 2019. RetrievedMay 17, 2019.
  7. ^"The JavaScript ecosystem is 'hopelessly fragmented'... so here is another runtime: Deno is now a company". Archived fromthe original on 2024-06-25. Retrieved2025-01-10.
  8. ^Paul Krill (2018-06-21)."Ryan Dahl's Node.js regrets lead to Deno".InfoWorld. Archived fromthe original on 2019-04-14.
  9. ^Dahl, Ryan (2018-06-06).10 things I regret about Node.js. JSConf EU. Retrieved2019-05-17 – via YouTube.
  10. ^Dahl, Ryan (2018-06-06)."Design mistakes in Node"(PDF).Github.
  11. ^"denoland/deno, branch "golang"".GitHub.
  12. ^"Suggestion: Look into porting to Rust and using Tokio".GitHub.
  13. ^"Tokio - The asynchronous run-time for the Rust programming language".Tokio.rs.
  14. ^"Protobuf seems like a lot of overhead for this use case?".GitHub.
  15. ^"Remove flatbuffers".GitHub.
  16. ^"Replace flatbuffers".GitHub. April 15, 2019. RetrievedJuly 11, 2019.
  17. ^"denoland/deno_std: deno standard modules".GitHub. 3 March 2022.
  18. ^"Deno 1.0".deno.com. 13 May 2020. Retrieved2020-05-14.
  19. ^Dahl, Ryan (4 May 2022)."JavaScript Containers".tinyclouds.org. Archived fromthe original on 4 May 2022.
  20. ^Krill, Paul (2021-06-24)."Deno Company unveils server-side JavaScript hosting service".InfoWorld. Archived fromthe original on 27 Jun 2022. Retrieved2022-04-14.
  21. ^Krill, Paul (2022-06-03)."Deno Deploy moves toward GA, adds paid plan".InfoWorld. Retrieved2022-07-24.
  22. ^Luca, Casonato (2022-07-22)."Introduction Fresh 1.0 as new full stack web framework for Deno".Deno Blog. Retrieved2022-07-24.
  23. ^Casonato, Luca (2022-09-08)."Fresh 1.1 - automatic JSX, plugins, DevTools, and more".Deno Blog. Retrieved2022-09-10.
  24. ^Jiang, Andy (2023-04-04)."Announcing Deno SaaSKit: an open-source SaaS template built with Fresh".Deno Blog. Retrieved2022-04-04.
  25. ^"Announcing Deno 2".Deno Blog. 2024-10-09. Retrieved2024-10-27.
  26. ^"Deno Is Ready for Production".InfoQ. Retrieved2020-07-01.
  27. ^"Modules: ECMAScript modules | Node.js v17.6.0 Documentation".
  28. ^"Deno - A modern runtime for JavaScript and TypeScript".
  29. ^"Modules: ECMAScript modules | Node.js v17.6.0 Documentation".
  30. ^"Deno - A modern runtime for JavaScript and TypeScript".
  31. ^"Deno.js in Production. Key Takeaways".Medium.com. Retrieved16 May 2022.
  32. ^"Documentation".GitHub. 3 March 2022.
  33. ^"Deno raises $21M".deno.com. 21 June 2022. Archived fromthe original on 22 June 2022.

External links

[edit]
Code analysis
Subsets,* supersets
Transpilers
Concepts
Debuggers
Documentation generators
Editors (comparison)
Engines
Frameworks
Relatedtechnologies
Package managers
Module bundlers
Server-side
Unit testing frameworks (list)
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=Deno_(software)&oldid=1330977973"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp