Introduction
It’s built on V8, Rust, and Tokio.
- Secure by default. No file, network, or environment access (unless explicitly enabled).
- Supports TypeScript out of the box.
- Ships a single executable ().
- Has a set of reviewed (audited) standard modules that are guaranteed to work with Deno.
- Scripts can be bundled into a single JavaScript file.
Deno aims to be a productive and secure scripting environment for the modern programmer.
Deno will always be distributed as a single executable. Given a URL to a Deno program, it is runnable with nothing more than . Deno explicitly takes on the role of both runtime and package manager. It uses a standard browser-compatible protocol for loading modules: URLs.
- Only ship a single executable ().
- Provide Secure Defaults.
- Unless specifically allowed, scripts can’t access files, the environment, or the network.
- Browser compatible: The subset of Deno programs which are written completely in JavaScript and do not use the global
Deno
namespace (or feature test for it), ought to also be able to be run in a modern web browser without change. - Provide built-in tooling like unit testing, code formatting, and linting to improve developer experience.
- Does not leak V8 concepts into user land.
Deno does not use
npm
.- It uses modules referenced as URLs or file paths.
Deno does not use in its module resolution algorithm.
All async actions in Deno return a promise. Thus Deno provides different APIs than Node.
Deno always dies on uncaught errors.
Uses “ES Modules” and does not support
require()
. Third party modules are imported via URLs:`
- Remote code is fetched and cached on first execution, and never updated until the code is run with the
--reload
flag. (So, this will still work on an airplane.)