Generated by DeepSeek V3.2| Deno (software) | |
|---|---|
| Name | Deno |
| Developer | Ryan Dahl |
| Released | 13 May 2020 |
| Programming language | Rust, TypeScript, JavaScript |
| Operating system | Cross-platform |
| Genre | Runtime system |
| License | MIT License |
Deno (software). Deno is a secure runtime system for JavaScript and TypeScript, created by Ryan Dahl, the original author of Node.js. It is built on the V8 JavaScript engine and the Rust programming language, designed to address perceived shortcomings in its predecessor. Deno emphasizes security by default, modern ECMAScript features, and a streamlined development experience with built-in tooling.
Deno serves as an alternative to Node.js for executing code outside of a web browser. A key philosophical difference is its security model, where scripts run in a secure sandbox with no explicit access to the file system, network, or environment variables unless granted. It natively supports TypeScript without requiring an external transpiler and includes a standard library reviewed for security and quality. The system is distributed as a single executable file, simplifying deployment and eliminating dependency on a central package manager like npm.
Deno's feature set is built around developer productivity and security. It includes a built-in dependency inspector, code formatter, test runner, and script bundler, reducing reliance on external tools like ESLint or Webpack. Modules are imported directly from URLs, decentralizing package management and enabling the use of any web server as a source. The runtime supports top-level await, WebAssembly, and modern ECMAScript 2022 standards out-of-the-box. Its permission system can be granularly controlled via command-line flags for capabilities like file system read-write or network access.
The architecture of Deno is centered on the V8 engine and a core written in Rust, utilizing the Tokio platform for asynchronous I/O. It employs the Rust crate deno_core to provide the foundational runtime system. Communication between JavaScript and system operations is handled through a message passing interface built on Protocol Buffers, isolating the privileged Rust code from the user's scripts. This design contrasts with Node.js's use of C++ add-ons and the libuv library for event handling.
Deno was announced by Ryan Dahl in 2018 during his talk "10 Things I Regret About Node.js" at the JSConf EU conference. Initial development was supported by contributions from the open-source community and funding from various entities. The project reached its stable 1.0 release in May 2020. Subsequent development has been managed by the Deno Land company, with major releases introducing features like the Deno Deploy distributed edge computing system and compatibility with Node.js modules via a dedicated compatibility layer.
While both are JavaScript runtimes, Deno and Node.js differ significantly in design philosophy and implementation. Deno uses ES Modules as its default module system, whereas Node.js historically used CommonJS. Security in Node.js is opt-out, granting full system access, while Deno is opt-in. Deno avoids a centralized package manager, using URL-based imports instead of the npm registry. The built-in tooling in Deno contrasts with the extensive third-party ecosystem required for Node.js development. However, Node.js benefits from a larger library of modules and more mature enterprise support.
Adoption of Deno has grown in areas prioritizing security and modern tooling. It is used for building command-line interface tools, web servers, and utility software, with frameworks like Fresh gaining traction. Companies such as Netlify and Supabase have integrated Deno into their platforms for edge computing functions. The Deno Deploy service is used for globally distributed serverless computing applications. Educational projects and new startups often choose Deno for its streamlined workflow and built-in security, though it has not yet displaced Node.js in large-scale, legacy enterprise environments.
Category:Free software programmed in Rust Category:JavaScript engines Category:Software using the MIT license Category:2018 software